Function at 0x4edff0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x4530
call fcn.00524db0
mov eax, dword [0x6f9540]
xor eax, esp
mov dword [esp + 0x452c], eax
mov edx, dword [esp + 0x4544]
mov ecx, dword [esp + 0x453c]
mov eax, dword [esp + 0x4548]
push ebx
mov ebx, dword [esp + 0x4538]
push ebp
mov ebp, dword [esp + 0x4540]
push esi
mov esi, dword [esp + 0x454c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x54], esi
mov dword [esp + 0x64], edx
mov dword [esp + 0x20], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x5c], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x24], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0xc], 0
test esi, esi
je 0x4ee0b3
test edx, edx
je 0x4ee0b3
mov dword [esi], 0x64
mov dword [edx], 0
test ebx, ebx
jne 0x4ee0cd
mov dword [esi], 0x74
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x452c]
xor ecx, esp
call fcn.00524b20
add esp, 0x4530
ret
test eax, eax
mov edx, ecx
push edi
mov edi, 0x69f4cc
cmovne edi, eax
or edx, 0x80000
test ecx, 0x4000000
mov dword [esp + 0x30], edi
cmove edx, ecx
mov dword [esp + 0x18], edx
test edx, 0x18000000
jne 0x4eef72
mov eax, dword [edi + 0x24]
test eax, 0xffffff80
jne 0x4eef72
mov esi, edx
and esi, 0x2000000
je 0x4ee133
test edx, 0x1976fef3
jne 0x4ee124
test eax, 0xfffffff3
je 0x4ee133
mov eax, dword [esp + 0x58]
mov dword [eax], 0xc0
jmp 0x4eef78
cmp ebp, 0xffffffff
jne 0x4ee14b
push ebx
call fcn.0051e2e0
mov edx, dword [esp + 0x1c]
mov ebp, eax
add esp, 4
mov dword [esp + 0x2c], ebp
cmp ebp, dword [edi + 0x18]
jbe 0x4ee15f
mov eax, dword [esp + 0x58]
mov dword [eax], 0xbc
jmp 0x4eef78
mov eax, dword [edi + 0x14]
mov ecx, 0x6bd510
test eax, eax
mov dword [esp + 0x6c], edi
mov dword [esp + 0xc0], 0
cmovne ecx, eax
mov dword [esp + 0xdc], 0
mov dword [esp + 0x64], ecx
xor edi, edi
mov dword [esp + 0x70], ecx
mov dword [esp + 0xd8], edx
lea eax, [ecx + 0x100]
mov dword [esp + 0x124], 0
mov dword [esp + 0x74], eax
lea eax, [ecx + 0x200]
mov dword [esp + 0x78], eax
lea eax, [ecx + 0x340]
mov dword [esp + 0x7c], eax
mov ecx, ebx
xor eax, eax
mov dword [esp + 0xe4], 0
mov dword [esp + 0xc8], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0x128], eax
lea eax, [ecx + ebp*2]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x25c]
mov dword [esp + 0xf0], eax
xor eax, eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x90], eax
lea eax, [esp + 0x16c]
mov dword [esp + 0xd0], eax
lea eax, [esp + 0x65c]
mov dword [esp + 0xe8], eax
lea eax, [esp + 0x165c]
mov dword [esp + 0x118], 0
mov dword [esp + 0xd4], 0x14
mov dword [esp + 0xcc], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
mov dword [esp + 0x80], eax
mov dword [esp + 0x94], 0xbb8
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0x98], 0xffffffff
mov dword [esp + 0x9c], 0xffffffff
mov dword [esp + 0xa0], 0xffffffff
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 0xa8], 0xffffffff
mov dword [esp + 0xac], 0xffffffff
mov dword [esp + 0xb0], 0xffffffff
mov dword [esp + 0xb4], 0xffffffff
mov dword [esp + 0xb8], 0xffffffff
mov dword [esp + 0xbc], 0xffffffff
test esi, esi
jne 0x4ee35b
cmp ebp, 2
jb 0x4ee35b
cmp word [ecx + edi*2], 0x28
jne 0x4ee357
cmp word [ecx + edi*2 + 2], 0x2a
jne 0x4ee357
sub ebp, edi
mov esi, 0x6f9418
add ebp, 0xfffffffe
xor ebx, ebx
movzx eax, word [esi + 4]
cmp ebp, eax
jb 0x4ee345
push eax
push dword [esi]
lea eax, [ecx + 4]
lea eax, [eax + edi*2]
push eax
call fcn.0051e340
add esp, 0xc
test eax, eax
je 0x4ee391
mov ecx, dword [esp + 0x20]
add ebx, 0xc
add esi, 0xc
cmp ebx, 0xfc
jb 0x4ee323
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0xd8]
mov eax, dword [esp + 0x20]
shr ecx, 0x13
and ecx, 1
mov dword [esp + 0x34], ecx
lea ebx, [eax + edi*2]
je 0x4ee4d2
test edx, 0x1000
je 0x4ee496
mov ecx, 0xae
mov ebp, eax
jmp 0x4eeea8
movzx eax, word [esi + 4]
add eax, 2
add edi, eax
movzx eax, word [esi + 6]
cmp eax, 6
ja case.default.0x4ee3a7
jmp dword [eax*4 + 0x4eef94]
mov eax, dword [esi + 8]
or dword [esp + 0xd8], eax
jmp case.default.0x4ee3a7
mov ebx, dword [esp + 0x14]
or ebx, dword [esi + 8]
mov dword [esp + 0x14], ebx
jmp case.default.0x4ee3a7
mov eax, dword [esi + 8]
or dword [esp + 0x14], 0x8000
mov dword [esp + 0x28], eax
jmp case.default.0x4ee3a7
mov eax, dword [esi + 8]
or dword [esp + 0x14], 0x4000
mov dword [esp + 0x50], eax
jmp case.default.0x4ee3a7
mov ebp, dword [esp + 0x20]
lea ebx, [edi*2]
add ebx, ebp
xor ecx, ecx
movzx eax, word [ebx]
mov edx, eax
add eax, 0xffffffd0
cmp ax, 9
ja 0x4ee48c
mov eax, edx
cmp ax, 0x39
ja 0x4ee436
cmp ecx, 0x19999998
ja 0x4ee436
movzx eax, ax
lea ecx, [ecx + ecx*4]
inc edi
lea ecx, [ecx - 0x18]
lea ecx, [eax + ecx*2]
movzx eax, word [ebp + edi*2]
cmp eax, 0x30
jae 0x4ee411
lea eax, [edi + edi]
inc edi
cmp word [eax + ebp], 0x29
jne 0x4ee479
movzx eax, word [esi + 6]
cmp eax, 4
jne 0x4ee450
mov dword [esp + 0x3c], ecx
jmp case.default.0x4ee3a7
cmp eax, 5
jne 0x4ee45b
mov dword [esp + 0x40], ecx
jmp case.default.0x4ee3a7
mov dword [esp + 0x44], ecx
mov ebp, dword [esp + 0x2c]
mov eax, ebp
sub eax, edi
cmp eax, 2
jb 0x4ee357
mov ecx, dword [esp + 0x20]
jmp 0x4ee308
lea ebx, [edi*2]
mov ecx, 0xa0
add ebx, ebp
jmp 0x4eeea8
mov ecx, 0xa0
jmp 0x4eeea8
test edx, 0x40000000
jne 0x4ee4be
push dword [esp + 0x68]
push ebp
push eax
call fcn.005216e0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4eeeb6
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
test byte [ecx + 0x24], 1
je 0x4ee4d6
mov ecx, 0xbf
jmp 0x4eeea4
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0xd8]
mov esi, eax
shr esi, 0x11
and esi, 1
mov dword [esp + 0x2c], esi
je 0x4ee4fc
test eax, 0x800
je 0x4ee4fc
mov ecx, 0xaf
jmp 0x4eeea4
cmp dword [esp + 0x50], 0
jne 0x4ee50b
movzx eax, word [ecx + 0x1c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x4ee51b
movzx eax, word [ecx + 0x1e]
mov dword [esp + 0x28], eax
dec eax
mov dword [esp + 0xfc], 0
cmp eax, 5
ja case.default.0x4ee530
jmp dword [eax*4 + 0x4eefb0]
mov eax, 0xd
mov dword [esp + 0x100], 1
mov word [esp + 0x10c], ax
jmp 0x4ee5b2
mov eax, 0xa
mov dword [esp + 0x100], 1
mov word [esp + 0x10c], ax
jmp 0x4ee5b2
xor eax, eax
mov dword [esp + 0x100], 1
mov word [esp + 0x10c], ax
jmp 0x4ee5b2
mov dword [esp + 0x100], 2
mov dword [esp + 0x10c], 0xa000d
jmp 0x4ee5b2
mov dword [esp + 0xfc], 1
jmp 0x4ee5b2
mov dword [esp + 0xfc], 2
mov eax, ebp
sub eax, edi
mov edi, dword [esp + 0x30]
test byte [edi + 0x24], 0xc
lea ecx, [eax + 4]
cmove ecx, eax
test dl, 4
je 0x4ee5cf
lea eax, [ecx + 1]
lea ecx, [eax + eax*4]
lea esi, [ecx*4]
cmp ecx, 0x400
jb 0x4ee606
push dword [edi + 8]
lea eax, [esi + 4]
push eax
mov eax, dword [edi]
call eax
add esp, 8
test eax, eax
jne 0x4ee5ff
mov eax, dword [esp + 0x58]
mov dword [eax], 0x79
jmp 0x4eef14
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add eax, 4
add eax, esi
mov dword [esp + 0xec], eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x28]
push eax
push dword [esp + 0xe0]
push ebx
call fcn.004eb1f0
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4ee678
mov eax, dword [esp + 0xe0]
cmp eax, 0x100
jb 0x4ee698
push dword [edi + 8]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [edi]
call eax
add esp, 8
mov dword [esp + 0xf0], eax
test eax, eax
jne 0x4ee691
mov ecx, 0x79
mov dword [esp + 0xc0], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0xc0]
mov ebp, dword [esp + 0x20]
lea ebx, [eax*2]
add ebx, ebp
jmp 0x4eeeac
mov eax, dword [esp + 0xe0]
lea eax, [eax*4 + 4]
push eax
push 0
push dword [esp + 0xf8]
call fcn.00526b90
add esp, 0xc
cmp dword [esp + 0x24], 0
je 0x4ee6e7
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], 0
push eax
lea eax, [esp + 0x70]
push eax
push 0
push 0
push dword [esp + 0xf8]
call fcn.004e5e70
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4ee678
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x165c]
mov dword [esp + 0x54], eax
mov eax, 0x86
mov word [esp + 0x165c], ax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x70]
mov dword [esp + 0xc4], ebp
push eax
push 0
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x74]
push eax
push 0
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x7c]
push eax
push dword [esp + 0x104]
call fcn.004e97c0
mov ecx, dword [esp + 0x40]
add esp, 0x30
test ecx, ecx
jne 0x4ee678
mov ebx, dword [esp + 0x60]
cmp ebx, 0x10000
jbe 0x4ee773
mov ecx, 0x78
jmp 0x4ee674
movzx eax, word [esp + 0xc6]
movzx ecx, word [esp + 0xc4]
push dword [edi + 8]
imul ecx, eax
mov eax, dword [edi]
add ecx, ebx
lea esi, [ecx*2 + 0x70]
push esi
call eax
mov ebp, eax
add esp, 8
mov dword [esp + 0x38], ebp
test ebp, ebp
jne 0x4ee7ac
lea ecx, [eax + 0x79]
jmp 0x4ee674
xorps xmm0, xmm0
movq qword [ebp + 0x68], xmm0
movq xmm0, qword [edi]
movq qword [ebp], xmm0
xorps xmm0, xmm0
mov eax, dword [edi + 8]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x10], 0
movups xmmword [ebp + 0x14], xmm0
movups xmmword [ebp + 0x24], xmm0
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x38], 0x50435245
mov eax, dword [esp + 0xd8]
mov dword [ebp + 0x40], eax
mov eax, dword [edi + 0x24]
lea edi, [ebp + 0x70]
mov dword [ebp + 0x44], eax
mov eax, dword [esp + 0xdc]
or eax, dword [esp + 0x14]
or eax, 2
mov dword [ebp + 0x58], 0
mov dword [ebp + 0x48], eax
mov eax, dword [esp + 0x3c]
mov dword [ebp + 0x4c], eax
mov eax, dword [esp + 0x40]
mov dword [ebp + 0x50], eax
mov eax, dword [esp + 0x44]
mov dword [ebp + 0x54], eax
mov eax, dword [esp + 0x50]
mov word [ebp + 0x60], ax
mov eax, dword [esp + 0x28]
mov word [ebp + 0x62], ax
xor eax, eax
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x5c], 0
mov ax, word [esp + 0xc6]
mov word [ebp + 0x6c], ax
movzx edx, ax
mov ax, word [esp + 0xc4]
movzx ecx, ax
mov word [ebp + 0x6e], ax
xor eax, eax
imul edx, ecx
mov dword [esp + 0xc8], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0xcc], eax
mov ax, word [esp + 0xc4]
lea esi, [edx*2 + 0x70]
mov dword [esp + 0x90], edi
add esi, ebp
mov dword [esp + 0x14], esi
mov dword [esp + 0x84], esi
test ax, ax
je 0x4eea30
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x28], ecx
cmp dx, ax
jae 0x4eea30
mov edx, dword [esp + 0xd0]
add edx, 8
mov dword [esp + 0x3c], edx
mov ebx, dword [edx - 4]
movzx ebp, word [edx]
mov esi, dword [edx - 8]
mov dword [esp + 0x64], ebx
xor ebx, ebx
mov dword [esp + 0x44], ebp
mov dword [esp + 0x40], esi
test ecx, ecx
je 0x4ee995
add ebp, ebp
mov edx, esi
lea eax, [edi + 2]
mov esi, ebp
sub esi, 4
jb 0x4ee922
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x4ee927
add edx, 4
add eax, 4
sub esi, 4
jae 0x4ee911
cmp esi, 0xfffffffc
je 0x4ee95b
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x4ee954
cmp esi, 0xfffffffd
je 0x4ee95b
mov cl, byte [edx + 1]
cmp cl, byte [eax + 1]
jne 0x4ee954
cmp esi, 0xfffffffe
je 0x4ee95b
mov cl, byte [edx + 2]
cmp cl, byte [eax + 2]
jne 0x4ee954
cmp esi, 0xffffffff
je 0x4ee95b
mov cl, byte [edx + 3]
cmp cl, byte [eax + 3]
je 0x4ee95b
sbb eax, eax
or eax, 1
jmp 0x4ee95d
xor eax, eax
test eax, eax
jne 0x4ee9ff
cmp word [edi + ebp + 2], ax
je 0x4eea05
movzx ecx, word [esp + 0xc6]
mov eax, dword [esp + 0x28]
sub eax, ebx
imul eax, ecx
add eax, eax
push eax
lea eax, [edi + ecx*2]
push edi
push eax
call fcn.00526450
add esp, 0xc
mov ebp, dword [esp + 0x44]
mov eax, dword [esp + 0x64]
lea esi, [ebp*2]
push esi
push dword [esp + 0x44]
mov word [edi], ax
lea eax, [edi + 2]
push eax
call fcn.00526450
movzx eax, word [esp + 0xd2]
sub eax, ebp
lea eax, [eax*2 - 2]
push eax
lea eax, [edi + 2]
add eax, esi
push 0
push eax
call fcn.00526b90
mov ecx, dword [esp + 0x40]
add esp, 0x18
mov edx, dword [esp + 0x3c]
inc ecx
movzx eax, word [esp + 0xc4]
add edx, 0xc
mov dword [esp + 0x28], ecx
mov dword [esp + 0x3c], edx
cmp ecx, eax
jae 0x4eea24
mov edi, dword [esp + 0x90]
jmp 0x4ee8e4
js 0x4ee970
movzx eax, word [esp + 0xc6]
inc ebx
lea edi, [edi + eax*2]
cmp ebx, dword [esp + 0x28]
jae 0x4ee991
mov esi, dword [esp + 0x40]
jmp 0x4ee905
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x24], eax
mov eax, 0x86
mov word [esi], ax
lea eax, [esp + 0x6c]
push 0
push eax
push 0
lea eax, [esp + 0x54]
mov dword [esp + 0x60], esi
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x74]
push eax
push 0
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x7c]
push eax
push dword [ebp + 0x40]
call fcn.004e97c0
add esp, 0x30
test eax, eax
jns 0x4eea8b
or dword [ebp + 0x48], 0x2000
movzx eax, word [esp + 0xe0]
mov word [ebp + 0x68], ax
movzx eax, word [esp + 0xf4]
mov word [ebp + 0x6a], ax
movzx eax, word [esp + 0x118]
mov word [ebp + 0x64], ax
cmp dword [esp + 0x11c], 0
je 0x4eead1
xor eax, eax
or dword [ebp + 0x48], 0x800000
mov dword [esp + 0x18], eax
mov eax, 0xfffffffe
mov dword [esp + 0x48], eax
jmp 0x4eeae1
mov eax, dword [esp + 0x48]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x54]
xor eax, eax
mov word [ecx], ax
sub ecx, esi
add ecx, 2
sar ecx, 1
cmp ecx, ebx
jbe 0x4eeafd
lea ecx, [eax + 0x7b]
jmp 0x4ee674
mov eax, dword [ebp + 0x34]
sub ecx, ebx
lea eax, [eax + ecx*2]
mov dword [ebp + 0x34], eax
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x4ee678
cmp dword [esp + 0x124], ecx
je 0x4eec14
push dword [esp + 0x34]
xor ebx, ebx
lea ebp, [ecx + 8]
push esi
call fcn.004e9e20
add esp, 8
mov dword [esp + 0x4c], eax
test eax, eax
je 0x4eec10
nop
movzx edi, word [eax + 2]
test edi, edi
jne 0x4eeb4f
mov eax, esi
jmp 0x4eebdc
mov ecx, esi
xor edx, edx
mov dword [esp + 0x24], ecx
mov eax, ebp
test ebx, ebx
je 0x4eeba1
nop dword [eax]
lea ecx, [eax*8]
cmp edi, dword [esp + ecx + 0x130]
je 0x4eeb8e
jle 0x4eeb7f
mov ecx, dword [esp + ecx + 0x12c]
mov dword [esp + 0x24], ecx
jmp 0x4eeb83
mov ecx, dword [esp + 0x24]
inc eax
inc edx
and eax, 7
cmp edx, ebx
jb 0x4eeb60
jmp 0x4eeb9d
mov eax, dword [esp + ecx + 0x12c]
test eax, eax
jne 0x4eebd8
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
push edi
push dword [esp + 0x38]
push ecx
call fcn.0051fb70
add esp, 0xc
test eax, eax
je 0x4eec39
sub ebp, 1
mov ecx, 7
cmovs ebp, ecx
mov dword [esp + ebp*8 + 0x130], edi
mov dword [esp + ebp*8 + 0x12c], eax
cmp ebx, 8
jae 0x4eebdc
inc ebx
jmp 0x4eebdc
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x4c]
sub eax, esi
push dword [esp + 0x34]
sar eax, 1
mov word [ecx + 2], ax
lea eax, [ecx + 4]
push eax
call fcn.004e9e20
add esp, 8
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x4eeb40
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x4ee678
mov ebp, dword [esp + 0x38]
test dword [ebp + 0x40], 0x4000
jne 0x4eec4f
lea eax, [esp + 0x6c]
push eax
push esi
call fcn.0051e380
add esp, 8
test eax, eax
je 0x4eec43
mov ecx, 0xb4
jmp 0x4ee674
mov ecx, 0x99
jmp 0x4ee674
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x4ee678
mov edi, dword [ebp + 0x40]
mov esi, edi
mov ebx, dword [esp + 0x14]
test edi, edi
js 0x4eec7d
push 0
push 0
lea eax, [esp + 0x74]
push eax
push 0
push ebx
call fcn.004ead80
add esp, 0x14
test eax, eax
je 0x4eec7d
or esi, 0x80000000
mov dword [ebp + 0x40], esi
test esi, 0x10000
jne 0x4eee96
mov eax, dword [esp + 0x1c]
xor edi, edi
cmp eax, 0xfffffffe
jb 0x4eece0
push edi
lea eax, [esp + 0x20]
push eax
push ebx
call fcn.004e9c50
mov esi, eax
add esp, 0xc
mov eax, dword [esp + 0x1c]
cmp eax, 0xfffffffe
jb 0x4eece4
cmp dword [ebp + 0x40], edi
jl 0x4eed7f
push edi
push edi
lea eax, [esp + 0x74]
push eax
push edi
push ebx
call fcn.004eaf70
add esp, 0x14
test eax, eax
mov eax, dword [esp + 0x1c]
je 0x4eed7f
or dword [ebp + 0x48], 0x200
jmp 0x4eed7f
mov esi, dword [esp + 0x5c]
mov ebx, dword [ebp + 0x48]
mov edi, 1
or ebx, 0x10
mov dword [ebp + 0x58], esi
mov dword [ebp + 0x48], ebx
test al, 1
je 0x4eed7f
cmp esi, 0x80
jb 0x4eed69
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
test ecx, ecx
jne 0x4eed25
test edx, edx
jne 0x4eed25
cmp esi, 0xff
jb 0x4eed69
test ecx, ecx
jne 0x4eed25
test edx, edx
je 0x4eed7f
cmp esi, 0x10ffff
ja 0x4eed7f
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, word [eax*2 + 0x6a6508]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x4eed51
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x6aa908]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x6a22fc]
add eax, esi
jmp 0x4eed71
mov eax, dword [esp + 0x74]
movzx eax, byte [esi + eax]
cmp eax, esi
mov eax, dword [esp + 0x1c]
je 0x4eed7f
or ebx, 0x20
mov dword [ebp + 0x48], ebx
mov edx, dword [esp + 0x48]
cmp edx, 0xfffffffe
jae 0x4eee63
mov ecx, dword [ebp + 0x40]
mov ebx, dword [esp + 0x18]
test ecx, 0x80000
je 0x4eedbc
cmp eax, 0xfffffffe
jae 0x4eedbc
and esi, 0xf800
cmp esi, 0xd800
jne 0x4eedbc
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xdc00
je 0x4eedbd
inc edi
test ecx, ecx
jns 0x4eedca
test dl, 2
je 0x4eee63
mov esi, dword [ebp + 0x48]
or esi, 0x80
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x48], esi
test dl, 1
je 0x4eee63
cmp ebx, 0x80
jb 0x4eee4e
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
test eax, eax
jne 0x4eee0a
test ecx, ecx
jne 0x4eee0a
cmp ebx, 0xff
jb 0x4eee4e
test eax, eax
jne 0x4eee0a
test ecx, ecx
je 0x4eee63
cmp ebx, 0x10ffff
ja 0x4eee63
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, word [eax*2 + 0x6a6508]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x4eee36
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x6aa908]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x6a22fc]
add eax, ebx
jmp 0x4eee56
mov eax, dword [esp + 0x74]
movzx eax, byte [ebx + eax]
cmp eax, ebx
je 0x4eee63
or esi, 0x100
mov dword [ebp + 0x48], esi
push ebp
call fcn.0051ff50
add esp, 4
test eax, eax
je 0x4eee7a
mov ecx, 0x83
jmp 0x4ee674
test byte [ebp + 0x48], 0x40
je 0x4eee8a
test edi, edi
mov eax, 1
cmove edi, eax
movzx eax, word [ebp + 0x66]
cmp eax, edi
jae 0x4eee96
mov word [ebp + 0x66], di
mov edi, dword [esp + 0x30]
jmp 0x4eef16
mov ecx, 0x9c
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x68]
sub ebx, ebp
sar ebx, 1
mov dword [eax], ebx
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x38]
mov dword [eax], ecx
test ebx, ebx
je 0x4eef10
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x4eeed5
push ebx
push eax
call fcn.004fc1a0
add esp, 8
test dword [ebx + 0x48], 0x40000
je 0x4eef04
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + 0x440]
test eax, eax
je 0x4eef04
add eax, 0xffffffff
mov dword [ecx + 0x440], eax
jne 0x4eef04
push dword [ebx + 8]
mov eax, dword [ebx + 4]
push dword [ebx + 0xc]
call eax
add esp, 8
push dword [ebx + 8]
mov eax, dword [ebx + 4]
push ebx
call eax
add esp, 8
mov edi, dword [esp + 0x30]
xor ebp, ebp
mov eax, dword [esp + 0xe8]
lea ecx, [esp + 0x65c]
cmp eax, ecx
je 0x4eef34
push dword [edi + 8]
push eax
mov eax, dword [edi + 4]
call eax
add esp, 8
cmp dword [esp + 0xd4], 0x14
jbe 0x4eef50
push dword [edi + 8]
mov eax, dword [edi + 4]
push dword [esp + 0xd4]
call eax
add esp, 8
mov ecx, dword [esp + 0xf0]
lea eax, [esp + 0x25c]
cmp ecx, eax
je 0x4eef6e
push dword [edi + 8]
push ecx
mov ecx, dword [edi + 4]
call ecx
add esp, 8
mov eax, ebp
jmp 0x4eef7a
mov dword [esi], 0x75
xor eax, eax
mov ecx, dword [esp + 0x453c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00524b20
add esp, 0x4530
ret