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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x95c
push ebx
mov ebx, dword [ebp + 0x14]
push esi
xor esi, esi
cmp dword [0x71df60], esi
push edi
je 0x4ed46f
test ecx, ecx
js 0x4ed46f
mov eax, ecx
and eax, 0x78000000
cmp eax, 0x8000000
jne 0x4ed46f
mov eax, ecx
and eax, 0xffff
cmp eax, 0x8000
jge 0x4ed46f
mov eax, dword [eax*4 + 0x71dfc4]
cmp eax, esi
mov dword [esp + 0x84], eax
je 0x4ed46f
mov edx, dword [eax]
shl edx, 0x10
and ecx, 0x7ff0000
cmp edx, ecx
jne 0x4ed46f
mov edi, dword [eax + 0x1c]
mov dword [esp + 0x14], edi
call fcn.004ea2c0
mov eax, dword [ebx + 8]
sub eax, dword [ebx]
mov ecx, dword [ebx + 0xc]
sub ecx, dword [ebx + 4]
cmp eax, esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], ecx
jle 0x4ee299
cmp ecx, esi
jle 0x4ee299
cmp dword [ebp + 0x20], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x88], esi
mov dword [esp + 0x80], esi
je 0x4ec8d9
mov ecx, dword [ebp + 0xc]
mov edi, dword [sym.imp.GDI32.dll_GetObjectA]
lea eax, [esp + 0xc0]
push eax
push 0x18
push ecx
call edi
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0xd4]
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xcc]
add eax, 3
mov dword [esp + 0x7c], edx
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp + 8]
mov ebx, eax
sar ebx, 2
add ebx, ebx
add ebx, ebx
cmp dword [ebp + 0x10], esi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x90], edx
je 0x4ec843
mov ecx, dword [ebp + 0x10]
lea eax, [esp + 0xc0]
push eax
push 0x18
push ecx
call edi
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0xd4]
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xcc]
add eax, 3
mov dword [esp + 0x50], edx
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp + 8]
mov esi, eax
sar esi, 2
add esi, esi
add esi, esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x88], esi
mov dword [esp + 0x80], edx
mov edi, dword [esp + 0x14]
cmp byte [edi + 8], 0
je 0x4edfe6
cmp dword [0x7cf900], 0
je 0x4ed46f
mov eax, dword [edi + 4]
mov ecx, dword [eax*4 + 0x7cf884]
push ecx
call fcn.004e8f70
mov dword [esp + 0x38], eax
xor eax, eax
add esp, 4
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
cmp byte [edi + 0xa], al
mov dword [esp + 0x24], eax
je 0x4eca11
mov eax, dword [0x7cf900]
mov edx, dword [eax]
mov edx, dword [edx + 0x90]
push 0
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [edi + 4]
mov ecx, dword [ecx*4 + 0x7cf884]
push 2
push ecx
mov ecx, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x60]
push ecx
push eax
call edx
test eax, eax
je 0x4ec954
push 0x6a7b8c
call fcn.004e16a0
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x28], esi
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x434]
mov edx, dword [eax + 0x428]
mov ebx, dword [eax + 0x430]
mov dword [esp + 0x7c], ecx
mov ecx, dword [eax + 0x42c]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x90], eax
je 0x4ec847
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 0x434]
mov ecx, dword [eax + 0x428]
mov esi, dword [eax + 0x430]
mov dword [esp + 0x50], edx
mov edx, dword [eax + 0x42c]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x88], esi
mov dword [esp + 0x80], eax
jmp 0x4ec847
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
push 0x2000
push 0
lea edx, [esp + 0x34]
push edx
push eax
mov eax, dword [ecx + 0x34]
call eax
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x54]
xor eax, eax
cmp dword [ebp + 0x30], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edx
je 0x4ec9a3
mov eax, dword [esp + 0x34]
cmp byte [eax + 7], 0
je 0x4ec9a3
cmp dword [esp + 0x50], 0
jne 0x4ec9a3
mov eax, 1
jmp 0x4ec9a5
xor eax, eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [0x91b4d4]
push 0
push 0
push ecx
mov ecx, dword [edi + 0x18]
push 0
push edx
push ecx
mov ecx, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x7c]
push 0
lea edx, [esp + 0x88]
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0xbc]
push edx
mov edx, dword [esp + 0xac]
push esi
push eax
mov eax, dword [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0x68]
push ebx
push edx
mov edx, dword [esp + 0x74]
push eax
push ecx
push edx
call fcn.005217b0
mov eax, dword [esp + 0x74]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
add esp, 0x50
push eax
call edx
cmp dword [ebp + 0x34], 1
jne 0x4ed479
cmp dword [edi + 0x2c], 0
lea esi, [edi + 0x30]
mov dword [esp + 0x78], esi
mov dword [esp + 0x98], 0
jle 0x4ed435
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x4c]
add ecx, eax
mov dword [esp + 0x94], ecx
mov edx, dword [esi + 0x14]
cmp edx, dword [esp + 0x94]
jge 0x4ed410
mov ecx, dword [esp + 0x54]
mov edi, dword [ebp + 0x1c]
mov eax, dword [esi + 0x18]
add ecx, edi
cmp eax, ecx
mov dword [esp + 0x20], ecx
jge 0x4ed410
mov ecx, dword [esi + 0x1c]
add ecx, edx
cmp dword [ebp + 0x18], ecx
jge 0x4ed410
mov ecx, dword [esi + 0x20]
add ecx, eax
cmp edi, ecx
jge 0x4ed410
mov ecx, dword [ebp + 0x18]
cmp edx, ecx
jle 0x4ecaa2
xor ebx, ebx
mov dword [esp + 0x38], ebx
mov eax, dword [esi + 0x14]
sub eax, ecx
mov dword [esp + 0x68], eax
jmp 0x4ecab0
mov eax, ecx
sub eax, edx
xor ebx, ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x68], ebx
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
add eax, edx
cmp eax, dword [esp + 0x94]
jge 0x4ecad6
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x40], edx
mov eax, dword [esi + 0x14]
sub eax, ecx
add eax, dword [esi + 0x1c]
mov dword [esp + 0x70], eax
jmp 0x4ecae8
mov edi, dword [esp + 0x4c]
mov eax, edi
sub eax, edx
add eax, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x70], edi
mov edx, dword [esi + 0x18]
mov ecx, dword [ebp + 0x1c]
cmp edx, ecx
jle 0x4ecafd
mov dword [esp + 0x3c], ebx
mov edi, dword [esi + 0x18]
sub edi, ecx
jmp 0x4ecb07
mov eax, ecx
sub eax, edx
mov dword [esp + 0x3c], eax
xor edi, edi
mov dword [esp + 0x6c], edi
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x20]
add edx, eax
cmp edx, dword [esp + 0x20]
jge 0x4ecb2a
mov ebx, dword [esi + 0x20]
mov dword [esp + 0x44], ebx
mov eax, dword [esi + 0x18]
sub eax, ecx
add eax, dword [esi + 0x20]
jmp 0x4ecb3a
mov edx, dword [esp + 0x54]
mov ebx, edx
sub ebx, eax
add ebx, ecx
mov dword [esp + 0x44], ebx
mov eax, edx
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 4]
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
add dword [esp + 0x68], ecx
add dword [esp + 0x70], ecx
add eax, edx
add edi, edx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x6c], edi
cmp byte [eax + 0xa], 1
jne 0x4ecbc1
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov eax, dword [0x7cf900]
mov dword [esp + 0x60], edx
lea edx, [esp + 0x5c]
push edx
mov dword [esp + 0x60], ecx
mov edx, dword [esi + 8]
mov ecx, dword [eax]
push edx
lea edx, [esp + 0x70]
push edx
mov edx, dword [esp + 0x30]
push edx
push eax
mov eax, dword [ecx + 0x78]
call eax
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4ed410
mov ecx, dword [0x7cf900]
mov edx, dword [ecx]
lea edi, [esp + 0x5c]
push edi
push eax
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x30]
push eax
push ecx
mov ecx, dword [edx + 0x78]
call ecx
jmp 0x4ed410
mov edx, eax
cmp byte [edx + 0xc], 0
je 0x4ecbd2
mov eax, dword [esi + 4]
mov dword [esp + 0x1c], eax
jmp 0x4ecbd8
mov ecx, dword [esi]
mov dword [esp + 0x1c], ecx
mov edi, dword [edx + 0x28]
cmp edi, 1
mov dword [esp + 0x48], edi
jle 0x4ed084
cmp dword [esp + 0x38], 0
jne 0x4ecd31
mov eax, dword [esp + 0x40]
cmp eax, dword [esi + 0x24]
jne 0x4ecd31
cmp dword [esp + 0x3c], 0
jne 0x4ecd31
cmp ebx, dword [esi + 0x28]
jne 0x4ecd31
mov esi, dword [ebp + 0x24]
cmp dword [esi + 0x438], edi
jl 0x4ecd34
mov ecx, dword [esi + 0x424]
cmp ecx, 1
jne 0x4ecc3e
mov eax, dword [edx + 4]
cmp dword [eax*4 + 0x7cf884], 0x31545844
je 0x4ecc9a
cmp ecx, 2
jne 0x4ecc53
mov eax, dword [edx + 4]
cmp dword [eax*4 + 0x7cf884], 0x32545844
je 0x4ecc9a
cmp ecx, 3
jne 0x4ecc68
mov eax, dword [edx + 4]
cmp dword [eax*4 + 0x7cf884], 0x33545844
je 0x4ecc9a
cmp ecx, 4
jne 0x4ecc7d
mov eax, dword [edx + 4]
cmp dword [eax*4 + 0x7cf884], 0x34545844
je 0x4ecc9a
cmp ecx, 5
jne 0x4ecd34
mov ecx, dword [edx + 4]
cmp dword [ecx*4 + 0x7cf884], 0x35545844
jne 0x4ecd34
mov eax, dword [esi + 0x42c]
imul eax, dword [esi + 0x428]
movzx edx, word [esi]
mov ebx, dword [esi + 0x434]
imul eax, edx
cdq
and edx, 7
add eax, edx
mov edi, eax
xor esi, esi
sar edi, 3
cmp dword [esp + 0x48], esi
jle 0x4ed3ee
lea ebx, [ebx]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push 0
push 0
lea edx, [esp + 0x34]
push edx
push esi
push eax
mov eax, dword [ecx + 0x4c]
call eax
test eax, eax
jne 0x4ed452
mov ecx, dword [esp + 0x30]
push edi
push ebx
push ecx
call fcn.004dc130
mov eax, dword [esp + 0x28]
mov edx, dword [eax]
add esp, 0xc
push esi
push eax
mov eax, dword [edx + 0x50]
call eax
mov eax, edi
cdq
and edx, 3
add eax, edx
sar eax, 2
add ebx, edi
mov edi, eax
cmp edi, 8
jge 0x4ecd23
mov edi, 8
add esi, 1
cmp esi, dword [esp + 0x48]
jl 0x4eccd0
jmp 0x4ed3ee
mov esi, dword [ebp + 0x24]
mov ecx, dword [edx + 4]
mov ecx, dword [ecx*4 + 0x7cf884]
cmp ecx, 0x31545844
je 0x4ed072
cmp ecx, 0x32545844
je 0x4ed072
cmp ecx, 0x33545844
je 0x4ed072
cmp ecx, 0x34545844
je 0x4ed072
cmp ecx, 0x35545844
je 0x4ed072
cmp dword [esi + 0x438], edi
jl 0x4ece07
mov eax, dword [ebp + 0x24]
movzx edi, word [eax + 2]
imul edi, dword [eax + 0x42c]
imul edi, dword [eax + 0x428]
mov ebx, dword [eax + 0x434]
xor esi, esi
cmp dword [esp + 0x48], esi
jle 0x4ed3ee
lea ecx, [ecx]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
push 0
push 0
lea ecx, [esp + 0x34]
push ecx
push esi
push eax
call edx
test eax, eax
jne 0x4edf19
mov eax, dword [esp + 0x30]
push edi
push ebx
push eax
call fcn.004dc130
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
add esp, 0xc
push esi
push eax
call edx
mov eax, edi
cdq
and edx, 3
add eax, edx
add ebx, edi
sar eax, 2
add esi, 1
cmp esi, dword [esp + 0x48]
mov edi, eax
jl 0x4ecdb0
jmp 0x4ed3ee
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0x38]
mov ecx, 1
cmp eax, ecx
mov dword [esp + 0x84], ecx
jle 0x4ece2d
nop
add ecx, ecx
cmp ecx, eax
jl 0x4ece20
mov dword [esp + 0x84], ecx
sub ebx, dword [esp + 0x3c]
mov eax, 1
cmp ebx, eax
mov dword [esp + 0x20], eax
jle 0x4ece4a
mov edi, edi
add eax, eax
cmp eax, ebx
jl 0x4ece40
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
movzx esi, word [eax + 2]
imul esi, dword [esp + 0x84]
mov edi, esi
imul edi, dword [esp + 0x20]
push 0
lea ecx, [edi + edi]
push 0x69d8f9
push ecx
call fcn.004e0530
mov ebx, eax
add esp, 0xc
test ebx, ebx
lea edx, [ebx + edi]
mov dword [esp + 0x58], edx
je 0x4edf32
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x84]
mov ecx, eax
mov dword [esp + 0x28], eax
xor eax, eax
cmp dword [esp + 0x48], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x64], eax
jle 0x4ed064
jmp 0x4ecebb
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x8c]
test eax, eax
jne 0x4ecf50
cmp dword [ebp + 0x30], eax
je 0x4ecee0
mov eax, dword [esp + 0x34]
cmp byte [eax + 7], 0
je 0x4ecee0
cmp dword [esp + 0x50], 0
jne 0x4ecee0
mov eax, 1
jmp 0x4ecee2
xor eax, eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [0x91b4d4]
push 0
push 0
push ecx
mov ecx, dword [esp + 0x20]
push 0
push edx
mov edx, dword [ecx + 0x18]
mov ecx, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x74]
push eax
push 0
lea eax, [esp + 0x88]
push eax
mov eax, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0xb0]
push edx
mov edx, dword [esp + 0x7c]
push eax
mov eax, dword [esp + 0xc0]
push ecx
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0xb4]
push eax
mov eax, dword [esp + 0x70]
push ecx
push edx
push eax
push esi
push ebx
call fcn.005217b0
add esp, 0x50
mov edi, ebx
jmp 0x4ecf7d
test al, 1
je 0x4ecf5c
mov edi, dword [esp + 0x58]
mov eax, ebx
jmp 0x4ecf62
mov eax, dword [esp + 0x58]
mov edi, ebx
push ecx
mov ecx, dword [esp + 0x38]
push edx
push 0
push 0
push 0
push 0
push esi
push eax
push esi
push edi
push ecx
call fcn.0051d320
add esp, 0x2c
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
push 0
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x70]
push ecx
push eax
call edx
test eax, eax
jne 0x4edf19
mov ecx, dword [esp + 0x20]
push eax
mov edx, dword [esp + 0x2c]
push eax
push eax
push eax
push eax
push eax
push eax
push eax
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0xc0]
push ecx
mov ecx, dword [esp + 0x80]
push edx
mov edx, dword [esp + 0x54]
push ecx
push eax
push eax
push eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x6c]
push eax
push esi
push edi
push eax
mov eax, dword [esp + 0x78]
push edx
push eax
call fcn.005217b0
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0xb4]
mov ecx, dword [eax]
add esp, 0x50
push edx
push eax
mov eax, dword [ecx + 0x50]
call eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov edx, eax
sar eax, 1
mov dword [esp + 0x8c], ecx
sar ecx, 1
test eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
jne 0x4ed040
mov dword [esp + 0x20], 1
cmp dword [esp + 0x28], 0
jne 0x4ed04f
mov dword [esp + 0x28], 1
mov eax, dword [esp + 0x64]
add eax, 1
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x64], eax
jl 0x4eceb0
push ebx
call fcn.004e0760
add esp, 4
jmp 0x4ed3ee
push 0x6a7b40
call fcn.004e16a0
add esp, 4
jmp 0x4ed3ee
mov ecx, dword [esp + 0x3c]
mov eax, dword [esi + 0x1c]
cmp eax, dword [esi + 0x24]
mov edi, dword [esp + 0x38]
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], ebx
mov byte [esp + 0x1b], 0
mov byte [esp + 0x13], 0
jge 0x4ed0c7
cmp eax, ecx
jne 0x4ed0c7
add ecx, 1
mov byte [esp + 0x1b], 1
mov dword [esp + 0x40], ecx
mov eax, dword [esi + 0x20]
cmp eax, dword [esi + 0x28]
jge 0x4ed0df
cmp eax, ebx
jne 0x4ed0df
add ebx, 1
mov byte [esp + 0x13], 1
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
push 0
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x34]
push ecx
push 0
push eax
call edx
test eax, eax
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xbc]
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ebx
jne 0x4edf8a
test edi, edi
jne 0x4ed1f2
cmp ecx, dword [esi + 0x24]
jne 0x4ed1f2
test edx, edx
jne 0x4ed1f2
cmp ebx, dword [esi + 0x28]
jne 0x4ed1f2
mov ecx, dword [ebp + 0x24]
mov eax, dword [ecx + 0x424]
cmp eax, 1
mov ebx, dword [esp + 0x14]
jne 0x4ed16a
mov edx, dword [ebx + 4]
cmp dword [edx*4 + 0x7cf884], 0x31545844
je 0x4ed1be
cmp eax, 2
jne 0x4ed17f
mov edx, dword [ebx + 4]
cmp dword [edx*4 + 0x7cf884], 0x32545844
je 0x4ed1be
cmp eax, 3
jne 0x4ed194
mov edx, dword [ebx + 4]
cmp dword [edx*4 + 0x7cf884], 0x33545844
je 0x4ed1be
cmp eax, 4
jne 0x4ed1a9
mov edx, dword [ebx + 4]
cmp dword [edx*4 + 0x7cf884], 0x34545844
je 0x4ed1be
cmp eax, 5
jne 0x4ed1f9
mov eax, dword [ebx + 4]
cmp dword [eax*4 + 0x7cf884], 0x35545844
jne 0x4ed1f9
mov eax, dword [ecx + 0x42c]
imul eax, dword [ecx + 0x428]
movzx ecx, word [ecx]
imul eax, ecx
cdq
and edx, 7
add eax, edx
mov edx, dword [esp + 0x7c]
sar eax, 3
push eax
mov eax, dword [esp + 0x34]
push edx
push eax
call fcn.004dc130
add esp, 0xc
jmp 0x4ed3e0
mov ecx, dword [ebp + 0x24]
mov ebx, dword [esp + 0x14]
mov edx, dword [ebx + 4]
mov eax, dword [edx*4 + 0x7cf884]
cmp eax, 0x31545844
je 0x4ed3d3
cmp eax, 0x32545844
je 0x4ed3d3
cmp eax, 0x33545844
je 0x4ed3d3
cmp eax, 0x34545844
je 0x4ed3d3
cmp eax, 0x35545844
je 0x4ed3d3
push ecx
call fcn.0051f370
add esp, 4
test eax, eax
jl 0x4edfb1
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x4ed263
push eax
call fcn.0051f370
add esp, 4
test eax, eax
jl 0x4edfb1
cmp dword [ebp + 0x30], 0
mov edi, dword [esp + 0x34]
je 0x4ed281
cmp byte [edi + 7], 0
je 0x4ed281
cmp dword [esp + 0x50], 0
jne 0x4ed281
mov eax, 1
jmp 0x4ed283
xor eax, eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [0x91b4d4]
push 0
push 0
push ecx
mov ecx, dword [ebx + 0x18]
push 0
push edx
push ecx
mov ecx, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x7c]
push 0
lea edx, [esp + 0x88]
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0x7c]
push edx
mov edx, dword [esp + 0xc0]
push eax
mov eax, dword [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x70]
push ecx
push edi
push edx
push eax
call fcn.005217b0
add esp, 0x50
cmp byte [esp + 0x13], 0
je 0x4ed32a
mov ecx, dword [esp + 0x70]
movzx edx, word [edi + 2]
sub ecx, dword [esp + 0x68]
mov eax, dword [esi + 0x20]
sub eax, dword [esp + 0x3c]
imul ecx, edx
mov edx, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x30]
lea ebx, [eax - 1]
imul eax, ecx
imul ebx, ecx
add ebx, edx
add eax, edx
push ebx
push eax
call fcn.004dc130
add esp, 0xc
mov bl, byte [esp + 0x1b]
test bl, bl
je 0x4ed384
movzx edx, word [edi + 2]
mov eax, dword [esi + 0x1c]
sub eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x74]
sub ecx, dword [esp + 0x6c]
imul eax, edx
add eax, dword [esp + 0x30]
sub edx, 2
je 0x4ed370
sub edx, 2
jne 0x4ed384
test ecx, ecx
jle 0x4ed384
lea ebx, [ebx]
mov edx, dword [eax - 4]
mov dword [eax], edx
add eax, dword [esp + 0x2c]
sub ecx, 1
jne 0x4ed360
jmp 0x4ed384
test ecx, ecx
jle 0x4ed384
mov dx, word [eax - 2]
mov word [eax], dx
add eax, dword [esp + 0x2c]
sub ecx, 1
jne 0x4ed374
cmp byte [esp + 0x13], 0
je 0x4ed3e0
test bl, bl
je 0x4ed3e0
movzx ecx, word [edi + 2]
mov edi, dword [esi + 0x20]
sub edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
mov eax, dword [esi + 0x1c]
imul edi, edx
sub eax, dword [esp + 0x38]
add edi, dword [esp + 0x30]
imul eax, ecx
add eax, edi
sub ecx, 2
je 0x4ed3c6
sub ecx, 2
jne 0x4ed3e0
mov ecx, eax
sub ecx, edx
mov edx, dword [ecx - 4]
mov dword [eax], edx
jmp 0x4ed3e0
mov ecx, eax
sub ecx, edx
mov dx, word [ecx - 2]
mov word [eax], dx
jmp 0x4ed3e0
push 0x6a7b40
call fcn.004e16a0
add esp, 4
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
push 0
push eax
call edx
mov eax, dword [esp + 0x14]
cmp byte [eax + 0xc], 0
mov esi, dword [esp + 0x78]
je 0x4ed410
mov edx, dword [esi]
mov eax, dword [0x7cf900]
mov ecx, dword [eax]
push edx
mov edx, dword [esi + 4]
push edx
push eax
mov eax, dword [ecx + 0x7c]
call eax
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x14]
add eax, 1
add esi, 0x2c
cmp eax, dword [ecx + 0x2c]
mov dword [esp + 0x98], eax
mov dword [esp + 0x78], esi
jl 0x4eca47
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4ee299
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4ed462
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
push 0x6a7b0c
call fcn.004e16a0
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x84]
xor eax, eax
lea ebx, [ecx + 0x44]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
cmp dword [ecx + 0x40], eax
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x98], eax
jle 0x4ed435
mov edx, dword [ebp + 0x18]
mov eax, dword [esp + 0x4c]
mov esi, dword [ebp + 0x1c]
add eax, edx
mov dword [esp + 0x94], eax
mov ecx, dword [ebx]
cmp ecx, dword [esp + 0x94]
jge 0x4edee9
mov edi, dword [esp + 0x54]
mov eax, dword [ebx + 4]
add edi, esi
cmp eax, edi
mov dword [esp + 0x20], edi
jge 0x4edee9
mov edi, dword [ebx + 0x10]
add edi, ecx
cmp edx, edi
jge 0x4edee9
mov edi, dword [ebx + 0x14]
add edi, eax
cmp esi, edi
jge 0x4edee9
cmp ecx, edx
jle 0x4ed507
mov dword [esp + 0x38], 0
mov eax, dword [ebx]
sub eax, edx
mov dword [esp + 0x68], eax
jmp 0x4ed517
mov eax, edx
sub eax, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x68], 0
mov eax, dword [ebx]
mov ecx, dword [ebx + 0x10]
add ecx, eax
cmp ecx, dword [esp + 0x94]
jge 0x4ed53b
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x40], ecx
mov eax, dword [ebx + 0x10]
sub eax, edx
add eax, dword [ebx]
mov dword [esp + 0x70], eax
jmp 0x4ed54d
mov edi, dword [esp + 0x4c]
mov ecx, edi
sub ecx, eax
add ecx, edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x70], edi
mov eax, dword [ebx + 4]
cmp eax, esi
jle 0x4ed561
xor edx, edx
mov dword [esp + 0x3c], edx
mov edi, dword [ebx + 4]
sub edi, esi
jmp 0x4ed56b
mov edx, esi
sub edx, eax
mov dword [esp + 0x3c], edx
xor edi, edi
mov dword [esp + 0x6c], edi
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 0x14]
add esi, eax
cmp esi, dword [esp + 0x20]
jge 0x4ed58f
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x44], eax
mov esi, dword [ebx + 0x14]
sub esi, dword [ebp + 0x1c]
add esi, dword [ebx + 4]
jmp 0x4ed5a1
mov eax, dword [esp + 0x54]
sub eax, dword [ebx + 4]
mov esi, dword [esp + 0x54]
add eax, dword [ebp + 0x1c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x74], esi
mov esi, dword [ebx + 8]
add dword [esp + 0x38], esi
add edx, dword [ebx + 0xc]
mov esi, dword [ebp + 0x14]
mov esi, dword [esi + 4]
mov dword [esp + 0x3c], edx
add ecx, dword [ebx + 8]
mov edx, dword [ebp + 0x14]
mov edx, dword [edx]
add edi, esi
mov dword [esp + 0x40], ecx
add eax, dword [ebx + 0xc]
add dword [esp + 0x68], edx
add dword [esp + 0x70], edx
add dword [esp + 0x74], esi
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x44], eax
cmp byte [edi + 0xa], 1
jne 0x4ed63a
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x5c], eax
mov eax, dword [0x7cf900]
mov edx, dword [eax]
mov edx, dword [edx + 0x78]
lea ecx, [esp + 0x5c]
push ecx
mov ecx, dword [ebx + 0x5c]
mov ecx, dword [ecx + 8]
push ecx
lea ecx, [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x30]
push ecx
push eax
call edx
test eax, eax
je 0x4edee3
push 0x6a7adc
call fcn.004e16a0
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [edi + 0xc], 0
mov edx, dword [ebx + 0x5c]
mov dword [esp + 0x58], edx
je 0x4ed64c
mov esi, dword [edx + 4]
jmp 0x4ed64e
mov esi, dword [edx]
mov dword [esp + 0x1c], esi
mov esi, dword [edi + 0x28]
cmp esi, 1
mov dword [esp + 0x48], esi
jle 0x4edb46
cmp dword [esp + 0x38], 0
jne 0x4ed7bf
cmp ecx, dword [edx + 0x24]
jne 0x4ed7bf
cmp dword [esp + 0x3c], 0
jne 0x4ed7bf
cmp eax, dword [edx + 0x28]
jne 0x4ed7bf
mov esi, dword [ebp + 0x24]
mov edx, dword [esp + 0x48]
cmp dword [esi + 0x438], edx
jl 0x4ed7c2
mov edx, dword [esi + 0x424]
cmp edx, 1
jne 0x4ed6bc
mov edi, dword [edi + 4]
cmp dword [edi*4 + 0x7cf884], 0x31545844
je 0x4ed724
mov edi, dword [esp + 0x14]
cmp edx, 2
jne 0x4ed6d5
mov edi, dword [edi + 4]
cmp dword [edi*4 + 0x7cf884], 0x32545844
je 0x4ed724
mov edi, dword [esp + 0x14]
cmp edx, 3
jne 0x4ed6ee
mov edi, dword [edi + 4]
cmp dword [edi*4 + 0x7cf884], 0x33545844
je 0x4ed724
mov edi, dword [esp + 0x14]
cmp edx, 4
jne 0x4ed707
mov edi, dword [edi + 4]
cmp dword [edi*4 + 0x7cf884], 0x34545844
je 0x4ed724
mov edi, dword [esp + 0x14]
cmp edx, 5
jne 0x4ed7c2
mov edx, dword [edi + 4]
cmp dword [edx*4 + 0x7cf884], 0x35545844
jne 0x4ed7c2
mov eax, dword [esi + 0x42c]
imul eax, dword [esi + 0x428]
movzx ecx, word [esi]
imul eax, ecx
cdq
and edx, 7
add eax, edx
mov edx, dword [esi + 0x434]
mov edi, eax
xor esi, esi
sar edi, 3
cmp dword [esp + 0x48], esi
mov dword [esp + 0x28], edx
jle 0x4edec1
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push 0
push 0
lea edx, [esp + 0x34]
push edx
push esi
push eax
mov eax, dword [ecx + 0x4c]
call eax
test eax, eax
jne 0x4ed452
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
push edi
push ecx
push edx
call fcn.004dc130
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
add esp, 0xc
push esi
push eax
call edx
add dword [esp + 0x28], edi
mov eax, edi
cdq
and edx, 3
add eax, edx
sar eax, 2
mov edi, eax
cmp edi, 8
jge 0x4ed7b1
mov edi, 8
add esi, 1
cmp esi, dword [esp + 0x48]
jl 0x4ed758
jmp 0x4edec1
mov esi, dword [ebp + 0x24]
mov edx, dword [edi + 4]
mov edx, dword [edx*4 + 0x7cf884]
cmp edx, 0x31545844
je 0x4edb34
cmp edx, 0x32545844
je 0x4edb34
cmp edx, 0x33545844
je 0x4edb34
cmp edx, 0x34545844
je 0x4edb34
cmp edx, 0x35545844
je 0x4edb34
mov edx, dword [esp + 0x48]
cmp dword [esi + 0x438], edx
jl 0x4ed89e
mov eax, dword [ebp + 0x24]
movzx edi, word [eax + 2]
imul edi, dword [eax + 0x42c]
imul edi, dword [eax + 0x428]
mov eax, dword [eax + 0x434]
xor esi, esi
test edx, edx
mov dword [esp + 0x28], eax
jle 0x4edec1
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push 0
push 0
lea edx, [esp + 0x34]
push edx
push esi
push eax
mov eax, dword [ecx + 0x4c]
call eax
test eax, eax
jne 0x4edf19
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
push edi
push ecx
push edx
call fcn.004dc130
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
add esp, 0xc
push esi
push eax
call edx
add dword [esp + 0x28], edi
mov eax, edi
cdq
and edx, 3
add eax, edx
sar eax, 2
add esi, 1
cmp esi, dword [esp + 0x48]
mov edi, eax
jl 0x4ed841
jmp 0x4edec1
sub ecx, dword [esp + 0x38]
mov edx, 1
cmp ecx, edx
mov dword [esp + 0x58], edx
jle 0x4ed8ba
nop
add edx, edx
cmp edx, ecx
jl 0x4ed8b0
mov dword [esp + 0x58], edx
sub eax, dword [esp + 0x3c]
mov ebx, 1
cmp eax, ebx
jle 0x4ed8cd
add ebx, ebx
cmp ebx, eax
jl 0x4ed8c7
mov eax, dword [esp + 0x34]
movzx edi, word [eax + 2]
imul edi, edx
mov esi, edi
imul esi, ebx
push 0
lea ecx, [esi + esi]
push 0x69d8f9
push ecx
call fcn.004e0530
add esp, 0xc
test eax, eax
lea edx, [eax + esi]
mov dword [esp + 0x28], eax
mov dword [esp + 0x78], edx
je 0x4edf32
mov edx, dword [esp + 0x58]
mov ecx, ebx
mov dword [esp + 0x64], ebx
xor ebx, ebx
cmp dword [esp + 0x48], ebx
mov dword [esp + 0x20], edx
jle 0x4edb1b
jmp 0x4ed924
mov ecx, dword [esp + 0x58]
test ebx, ebx
jne 0x4ed9b7
cmp dword [ebp + 0x30], ebx
je 0x4ed945
mov eax, dword [esp + 0x34]
cmp byte [eax + 7], bl
je 0x4ed945
cmp dword [esp + 0x50], ebx
jne 0x4ed945
lea eax, [ebx + 1]
jmp 0x4ed947
xor eax, eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [0x91b4d4]
push 0
push 0
push ecx
mov ecx, dword [esp + 0x20]
push 0
push edx
mov edx, dword [ecx + 0x18]
mov ecx, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x74]
push eax
push 0
mov esi, dword [esp + 0x48]
lea eax, [esp + 0x88]
push eax
mov eax, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0xb0]
push edx
mov edx, dword [esp + 0x7c]
push eax
mov eax, dword [esp + 0xc0]
push ecx
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0xb4]
push eax
mov eax, dword [esp + 0x70]
push ecx
push edx
push eax
push edi
push esi
call fcn.005217b0
add esp, 0x50
jmp 0x4ed9e9
test bl, 1
je 0x4ed9c6
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x78]
jmp 0x4ed9ce
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x38]
push edx
push 0
push 0
push 0
push 0
push edi
push eax
push edi
push esi
push ecx
call fcn.0051d320
add esp, 0x2c
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov ecx, ebx
sar edx, cl
sar eax, cl
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x3c]
sar edx, cl
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x44]
sar edx, cl
cmp dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
jne 0x4eda32
add eax, 1
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa4]
cmp edx, eax
jne 0x4eda47
add eax, 1
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
push 0
lea ecx, [esp + 0xa4]
push ecx
lea ecx, [esp + 0x34]
push ecx
push ebx
push eax
call edx
test eax, eax
jne 0x4edf59
mov ecx, dword [esp + 0x20]
push eax
mov edx, dword [esp + 0x68]
push eax
push eax
push eax
push eax
push eax
push eax
push eax
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], edx
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0xf8]
push ecx
mov ecx, dword [esp + 0x80]
push edx
mov edx, dword [esp + 0x54]
push ecx
push eax
push eax
push eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x6c]
push eax
push edi
push esi
push eax
mov eax, dword [esp + 0x78]
push edx
push eax
call fcn.005217b0
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
add esp, 0x50
push ebx
push eax
call edx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x64]
mov edx, eax
sar eax, 1
mov dword [esp + 0x58], ecx
sar ecx, 1
test eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x64], ecx
jne 0x4edaff
mov dword [esp + 0x20], 1
cmp dword [esp + 0x64], 0
jne 0x4edb0e
mov dword [esp + 0x64], 1
add ebx, 1
cmp ebx, dword [esp + 0x48]
jl 0x4ed920
mov eax, dword [esp + 0x28]
push eax
call fcn.004e0760
mov ebx, dword [esp + 0x90]
add esp, 4
jmp 0x4edec1
push 0x6a7b40
call fcn.004e16a0
add esp, 4
jmp 0x4edec1
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov dword [esp + 0xb4], edx
mov edx, dword [ebx + 0x5c]
mov edi, dword [edx + 0x1c]
cmp edi, dword [edx + 0x24]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
mov byte [esp + 0x1b], 0
mov byte [esp + 0x13], 0
jge 0x4edb8d
mov edx, dword [esp + 0x58]
cmp dword [edx + 0x1c], ecx
jne 0x4edb8d
add ecx, 1
mov byte [esp + 0x1b], 1
mov dword [esp + 0x40], ecx
mov ecx, dword [ebx + 0x5c]
mov edx, dword [ecx + 0x20]
cmp edx, dword [ecx + 0x28]
jge 0x4edba9
cmp dword [ecx + 0x20], eax
jne 0x4edba9
add eax, 1
mov byte [esp + 0x13], 1
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
push 0
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x34]
push ecx
push 0
push eax
call edx
test eax, eax
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0xbc]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edi
jne 0x4edf8a
test esi, esi
jne 0x4edcbf
mov eax, dword [ebx + 0x5c]
cmp ecx, dword [eax + 0x24]
jne 0x4edcbf
test edx, edx
jne 0x4edcbf
cmp edi, dword [eax + 0x28]
jne 0x4edcbf
mov ecx, dword [ebp + 0x24]
mov eax, dword [ecx + 0x424]
cmp eax, 1
mov esi, dword [esp + 0x14]
jne 0x4edc37
mov edx, dword [esi + 4]
cmp dword [edx*4 + 0x7cf884], 0x31545844
je 0x4edc8b
cmp eax, 2
jne 0x4edc4c
mov edx, dword [esi + 4]
cmp dword [edx*4 + 0x7cf884], 0x32545844
je 0x4edc8b
cmp eax, 3
jne 0x4edc61
mov edx, dword [esi + 4]
cmp dword [edx*4 + 0x7cf884], 0x33545844
je 0x4edc8b
cmp eax, 4
jne 0x4edc76
mov edx, dword [esi + 4]
cmp dword [edx*4 + 0x7cf884], 0x34545844
je 0x4edc8b
cmp eax, 5
jne 0x4edcc6
mov eax, dword [esi + 4]
cmp dword [eax*4 + 0x7cf884], 0x35545844
jne 0x4edcc6
mov eax, dword [ecx + 0x42c]
imul eax, dword [ecx + 0x428]
movzx ecx, word [ecx]
imul eax, ecx
cdq
and edx, 7
add eax, edx
mov edx, dword [esp + 0x7c]
sar eax, 3
push eax
mov eax, dword [esp + 0x34]
push edx
push eax
call fcn.004dc130
add esp, 0xc
jmp 0x4edeb3
mov esi, dword [esp + 0x14]
mov ecx, dword [ebp + 0x24]
mov edx, dword [esi + 4]
mov eax, dword [edx*4 + 0x7cf884]
cmp eax, 0x31545844
je 0x4edea6
cmp eax, 0x32545844
je 0x4edea6
cmp eax, 0x33545844
je 0x4edea6
cmp eax, 0x34545844
je 0x4edea6
cmp eax, 0x35545844
je 0x4edea6
push ecx
call fcn.0051f370
add esp, 4
test eax, eax
jl 0x4edfb1
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x4edd30
push eax
call fcn.0051f370
add esp, 4
test eax, eax
jl 0x4edfb1
cmp dword [ebp + 0x30], 0
mov edi, dword [esp + 0x34]
je 0x4edd4e
cmp byte [edi + 7], 0
je 0x4edd4e
cmp dword [esp + 0x50], 0
jne 0x4edd4e
mov eax, 1
jmp 0x4edd50
xor eax, eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [0x91b4d4]
push 0
push 0
push ecx
mov ecx, dword [esi + 0x18]
push 0
push edx
push ecx
mov ecx, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x7c]
push 0
lea edx, [esp + 0x88]
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0x7c]
push edx
mov edx, dword [esp + 0xc0]
push eax
mov eax, dword [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x70]
push ecx
push edi
push edx
push eax
call fcn.005217b0
add esp, 0x50
cmp byte [esp + 0x13], 0
je 0x4eddfa
mov ecx, dword [ebx + 0x5c]
mov eax, dword [ecx + 0x20]
mov edx, dword [esp + 0x70]
movzx ecx, word [edi + 2]
sub eax, dword [esp + 0x3c]
sub edx, dword [esp + 0x68]
lea esi, [eax - 1]
imul edx, ecx
mov ecx, dword [esp + 0x2c]
imul esi, ecx
imul eax, ecx
push edx
mov edx, dword [esp + 0x34]
add esi, edx
add eax, edx
push esi
push eax
call fcn.004dc130
add esp, 0xc
mov dl, byte [esp + 0x1b]
test dl, dl
je 0x4ede54
mov eax, dword [ebx + 0x5c]
mov eax, dword [eax + 0x1c]
movzx esi, word [edi + 2]
sub eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x74]
sub ecx, dword [esp + 0x6c]
imul eax, esi
add eax, dword [esp + 0x30]
sub esi, 2
je 0x4ede40
sub esi, 2
jne 0x4ede54
test ecx, ecx
jle 0x4ede54
lea ecx, [ecx]
mov esi, dword [eax - 4]
mov dword [eax], esi
add eax, dword [esp + 0x2c]
sub ecx, 1
jne 0x4ede30
jmp 0x4ede54
test ecx, ecx
jle 0x4ede54
mov si, word [eax - 2]
mov word [eax], si
add eax, dword [esp + 0x2c]
sub ecx, 1
jne 0x4ede44
cmp byte [esp + 0x13], 0
je 0x4edeb3
test dl, dl
je 0x4edeb3
mov eax, dword [ebx + 0x5c]
mov esi, dword [eax + 0x20]
sub esi, dword [esp + 0x3c]
mov eax, dword [eax + 0x1c]
movzx ecx, word [edi + 2]
mov edx, dword [esp + 0x2c]
sub eax, dword [esp + 0x38]
imul esi, edx
add esi, dword [esp + 0x30]
imul eax, ecx
add eax, esi
sub ecx, 2
je 0x4ede99
sub ecx, 2
jne 0x4edeb3
mov ecx, eax
sub ecx, edx
mov edx, dword [ecx - 4]
mov dword [eax], edx
jmp 0x4edeb3
mov ecx, eax
sub ecx, edx
mov dx, word [ecx - 2]
mov word [eax], dx
jmp 0x4edeb3
push 0x6a7b40
call fcn.004e16a0
add esp, 4
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
push 0
push eax
call edx
mov eax, dword [esp + 0x14]
cmp byte [eax + 0xc], 0
je 0x4edee3
mov eax, dword [ebx + 0x5c]
mov esi, dword [eax]
mov ecx, dword [0x7cf900]
mov eax, dword [eax + 4]
mov edx, dword [ecx]
push esi
push eax
push ecx
mov ecx, dword [edx + 0x7c]
call ecx
mov esi, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x84]
add eax, 1
add ebx, 0x60
cmp eax, dword [ecx + 0x40]
mov dword [esp + 0x98], eax
mov dword [esp + 0x8c], ebx
jl 0x4ed4b3
jmp 0x4ed435
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4ed462
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x4ed462
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4edf42
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 0x6a7a90
call fcn.004e16a0
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4edf69
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x28]
push eax
call fcn.004e0760
push 0x6a7b0c
call fcn.004e16a0
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4edf9a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 0x6a7a68
call fcn.004e16a0
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
push 0
push eax
call edx
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4edfcf
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 0x6a7a3c
call fcn.004e16a0
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x20], 0
je 0x4ee08b
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x7c]
mov ecx, 0x10a
lea edi, [esp + 0xe8]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x510], eax
xor eax, eax
cmp dword [ebp + 0x10], eax
mov dword [esp + 0x51c], edx
mov dword [esp + 0x514], ecx
mov dword [esp + 0x518], ebx
lea edx, [esp + 0xe8]
je 0x4ee091
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x78]
mov ecx, 0x10a
lea edi, [esp + 0x528]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x950], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x954], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x958], eax
mov dword [esp + 0x95c], ecx
lea eax, [esp + 0x528]
jmp 0x4ee091
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp + 0x28]
mov esi, dword [ebp + 0x18]
mov ebx, dword [esp + 0x4c]
add ebx, esi
cmp dword [ebp + 0x34], 1
jne 0x4ee110
mov edi, dword [esp + 0x14]
mov ecx, dword [edi + 0x2c]
cmp ebx, ecx
jle 0x4ee0b1
sub ecx, esi
mov dword [esp + 0x4c], ecx
mov ecx, dword [edi + 0x30]
mov esi, dword [esp + 0x54]
mov edi, dword [ebp + 0x1c]
lea ebx, [esi + edi]
cmp ebx, ecx
jle 0x4ee0ca
sub ecx, edi
mov esi, ecx
mov dword [esp + 0x54], esi
cmp dword [esp + 0x4c], 0
jle 0x4ed46f
test esi, esi
jle 0x4ed46f
mov ecx, dword [ebp + 0x30]
push ecx
mov ecx, edi
push ecx
mov ecx, dword [ebp + 0x18]
push ecx
mov ecx, dword [esp + 0x60]
push ecx
mov ecx, dword [esp + 0x5c]
push ecx
mov ecx, dword [ebp + 0x14]
mov esi, dword [ecx + 4]
mov ecx, dword [ecx]
push esi
mov esi, dword [esp + 0x2c]
push ecx
lea ecx, [esi + 0x28]
push ecx
push eax
push edx
call fcn.0052a7c0
jmp 0x4ee18f
mov edi, dword [esp + 0x84]
mov ecx, dword [edi + 0x28]
cmp ebx, ecx
jle 0x4ee124
sub ecx, esi
mov dword [esp + 0x4c], ecx
mov ecx, dword [edi + 0x2c]
mov esi, dword [esp + 0x54]
mov edi, dword [ebp + 0x1c]
lea ebx, [esi + edi]
cmp ebx, ecx
jle 0x4ee13d
sub ecx, edi
mov esi, ecx
mov dword [esp + 0x54], esi
cmp dword [esp + 0x4c], 0
jle 0x4ed46f
test esi, esi
jle 0x4ed46f
mov ecx, dword [ebp + 0x30]
push ecx
mov ecx, dword [esp + 0x88]
mov esi, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x20]
add ecx, dword [ebp + 0x18]
add esi, edi
push esi
push ecx
mov ecx, dword [esp + 0x60]
push ecx
mov ecx, dword [esp + 0x5c]
push ecx
mov ecx, dword [ebp + 0x14]
mov esi, dword [ecx + 4]
mov ecx, dword [ecx]
push esi
push ecx
mov ecx, dword [esp + 0x30]
add ecx, 0x28
push ecx
push eax
push edx
call fcn.0052a7c0
mov esi, dword [esp + 0x3c]
add esp, 0x28
cmp byte [esi + 0x12], 1
jne 0x4ee299
mov edx, dword [esi + 0x3c]
cmp dword [edx + 0x38], 0
je 0x4ee299
mov eax, dword [0x8e8138]
push 0xff
mov ecx, eax
and ecx, 0xff
push ecx
movzx ecx, byte [esi + 9]
movzx edx, ah
movzx eax, byte [0x8e813a]
push edx
xor edx, edx
cmp byte [esi + 0x10], 0x10
push eax
setne dl
push 0
push ecx
push edx
call fcn.0052af70
add esp, 0xc
push eax
call fcn.0051d8d0
mov esi, dword [esi + 0x3c]
mov ecx, dword [esi + 0x38]
add esp, 0x14
xor edx, edx
cmp dword [esi + 0x1c], 1
jne 0x4ee247
and eax, 0xffffff
add ecx, 8
mov edi, dword [ecx - 8]
and edi, 0xffffff
cmp edi, eax
je 0x4ee28c
mov edi, dword [ecx - 4]
and edi, 0xffffff
cmp edi, eax
je 0x4ee27f
mov edi, dword [ecx]
and edi, 0xffffff
cmp edi, eax
je 0x4ee284
mov edi, dword [ecx + 4]
and edi, 0xffffff
cmp edi, eax
je 0x4ee289
add edx, 4
add ecx, 0x10
cmp edx, 0x100
jl 0x4ee200
jmp 0x4ee28c
and eax, 0xffff
add ecx, 4
nop
movzx edi, word [ecx - 4]
cmp edi, eax
je 0x4ee28c
movzx edi, word [ecx - 2]
cmp edi, eax
je 0x4ee27f
movzx edi, word [ecx]
cmp edi, eax
je 0x4ee284
movzx edi, word [ecx + 2]
cmp edi, eax
je 0x4ee289
add edx, 4
add ecx, 8
cmp edx, 0x100
jl 0x4ee250
jmp 0x4ee28c
add edx, 1
jmp 0x4ee28c
add edx, 2
jmp 0x4ee28c
add edx, 3
cmp edx, 0x100
jne 0x4ee296
xor edx, edx
mov dword [esi + 0x18], edx
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret