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

Disassembly:
push 0xffffffffffffffff
push 0x5db189
mov eax, dword fs:[0]
push eax
sub esp, 0x4dc
mov eax, dword [0x680f10]
xor eax, esp
mov dword [esp + 0x4d8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x680f10]
xor eax, esp
push eax
lea eax, [esp + 0x4f0]
mov dword fs:[0], eax
xor ebx, ebx
mov edi, ecx
mov dword [esp + 0x14], ebx
mov ecx, dword [edi + 0x50]
cmp ecx, ebx
mov dword [esp + 0x40], edi
je 0x4ffa36
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov eax, dword [esp + 0x500]
cmp eax, ebx
mov dword [edi + 0x50], eax
je 0x500cd9
push ebx
mov ecx, edi
call fcn.004b6de0
lea ecx, [edi + 0x2c]
call fcn.004b9af0
mov esi, dword [edi + 0x50]
mov ecx, dword [esi + 4]
lea eax, [esp + 0x68]
push eax
push ecx
mov byte [esp + 0x22], 0xff
mov dword [esp + 0x70], ebx
call sub.gdiplus.dll_GdipGetImageWidth
cmp eax, ebx
je 0x4ffa79
mov dword [esi + 8], eax
mov esi, dword [edi + 0x50]
mov eax, dword [esi + 4]
lea edx, [esp + 0x6c]
push edx
push eax
mov dword [esp + 0x74], ebx
call sub.gdiplus.dll_GdipGetImageHeight
cmp eax, ebx
je 0x4ffa95
mov dword [esi + 8], eax
mov esi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
mov eax, esi
imul eax, ebp
mov dword [esp + 0x84], eax
lea eax, [eax + eax*2]
push eax
mov dword [esp + 0x8c], eax
call fcn.00427501
add esp, 4
lea ecx, [esp + 0xb4]
push ecx
push 0x26200a
mov dword [esp + 0x60], esi
mov esi, dword [edi + 0x50]
push 1
lea edx, [esp + 0x58]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebp
mov eax, dword [esi + 4]
push edx
push eax
call sub.gdiplus.dll_GdipBitmapLockBits
cmp eax, ebx
je 0x4ffaf7
mov dword [esi + 8], eax
mov eax, dword [esp + 0xc4]
cmp eax, ebx
mov edx, eax
je 0x50018a
cmp dword [esp + 0x6c], ebx
mov esi, dword [esp + 0x48]
jbe 0x50018a
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
mov edi, edi
test ebp, ebp
jbe 0x4ffb5b
lea eax, [edx + 1]
mov edi, ebp
lea esp, [esp]
movzx ecx, byte [eax + 1]
mov byte [esi], cl
movzx ecx, byte [eax]
mov byte [esi + 1], cl
movzx ecx, byte [eax - 1]
mov byte [esi + 2], cl
mov cl, byte [eax + 2]
cmp cl, byte [esp + 0x1a]
jae 0x4ffb50
mov byte [esp + 0x1a], cl
add esi, 3
add eax, 4
sub edi, 1
jne 0x4ffb30
add edx, dword [esp + 0xbc]
sub ebx, 1
jne 0x4ffb20
cmp byte [esp + 0x1a], 0xff
jae 0x50018a
mov esi, dword [esp + 0x40]
mov eax, dword [esi + 4]
xor edi, edi
push edi
push eax
push 0x74
call fcn.004b5290
add esp, 0xc
cmp eax, edi
je 0x4ffb9a
mov ecx, eax
call fcn.004f8930
mov ebp, eax
mov dword [esp + 0x3c], eax
jmp 0x4ffba0
xor ebp, ebp
mov dword [esp + 0x3c], ebp
mov eax, dword [esi + 4]
push edi
push eax
push 0x2c
call fcn.004b5290
mov esi, eax
add esp, 0xc
cmp esi, edi
je 0x4ffbf5
push 0xb
push 0x5fd8e0
lea ecx, [esp + 0x54]
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], edi
mov byte [esp + 0x58], 0
call fcn.00402f00
lea edx, [esp + 0x4c]
push edx
mov ecx, esi
mov dword [esp + 0x4fc], edi
mov dword [esp + 0x18], 1
call fcn.004b7280
mov esi, eax
jmp 0x4ffbf7
xor esi, esi
push 0x5fd8ec
lea ecx, [esp + 0x20]
call fcn.0048cd50
push esi
lea eax, [esp + 0x20]
push eax
push 1
mov ecx, ebp
mov dword [esp + 0x504], 1
call fcn.004b53e0
mov ecx, eax
call fcn.004ba020
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x1c], 0x5f1558
jb 0x4ffc42
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004274fc
add esp, 4
mov ebx, dword [esp + 0x14]
test bl, 1
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], edi
mov byte [esp + 0x24], 0
mov dword [esp + 0x1c], 0x5f13d0
mov dword [esp + 0x4f8], 0xffffffff
je 0x4ffc8a
and ebx, 0xfffffffe
cmp dword [esp + 0x64], 0x10
mov dword [esp + 0x14], ebx
jb 0x4ffc8a
mov edx, dword [esp + 0x50]
push edx
call fcn.004274fc
add esp, 4
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
push edi
push eax
push 0x2c
call fcn.004b5290
mov esi, eax
add esp, 0xc
cmp esi, edi
je 0x4ffce6
push 5
push 0x5fd8f4
lea ecx, [esp + 0x54]
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], edi
mov byte [esp + 0x58], 0
call fcn.00402f00
lea ecx, [esp + 0x4c]
or ebx, 2
push ecx
mov ecx, esi
mov dword [esp + 0x4fc], 2
mov dword [esp + 0x18], ebx
call fcn.004b7280
mov esi, eax
jmp 0x4ffce8
xor esi, esi
push 0x5fd8fc
lea ecx, [esp + 0x20]
call fcn.0048cd50
push esi
lea edx, [esp + 0x20]
push edx
push 1
mov ecx, ebp
mov dword [esp + 0x504], 3
call fcn.004b53e0
mov ecx, eax
call fcn.004ba020
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x1c], 0x5f1558
jb 0x4ffd33
mov eax, dword [esp + 0x24]
push eax
call fcn.004274fc
add esp, 4
test bl, 2
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], edi
mov byte [esp + 0x24], 0
mov dword [esp + 0x1c], 0x5f13d0
mov dword [esp + 0x4f8], 0xffffffff
je 0x4ffd77
and ebx, 0xfffffffd
cmp dword [esp + 0x64], 0x10
mov dword [esp + 0x14], ebx
jb 0x4ffd77
mov ecx, dword [esp + 0x50]
push ecx
call fcn.004274fc
add esp, 4
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 4]
push edi
push eax
push 0x20
call fcn.004b5290
add esp, 0xc
cmp eax, edi
je 0x4ffdb1
mov ecx, dword [esp + 0x68]
fild dword [esp + 0x68]
test ecx, ecx
jge 0x4ffda0
fadd qword [0x659f10]
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.004b5b20
mov esi, eax
jmp 0x4ffdb3
xor esi, esi
push 0x5fd904
lea ecx, [esp + 0x20]
call fcn.0048cd50
push esi
lea edx, [esp + 0x20]
push edx
push 1
mov ecx, ebp
mov dword [esp + 0x504], 4
call fcn.004b53e0
mov ecx, eax
call fcn.004ba020
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x4f8], 0xffffffff
mov dword [esp + 0x1c], 0x5f1558
jb 0x4ffe09
mov eax, dword [esp + 0x24]
push eax
call fcn.004274fc
add esp, 4
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 4]
push edi
push eax
push 0x20
call fcn.004b5290
add esp, 0xc
cmp eax, edi
je 0x4ffe43
mov edx, dword [esp + 0x6c]
fild dword [esp + 0x6c]
test edx, edx
jge 0x4ffe32
fadd qword [0x659f10]
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.004b5b20
mov esi, eax
jmp 0x4ffe45
xor esi, esi
push 0x5fd90c
lea ecx, [esp + 0x20]
call fcn.0048cd50
push esi
lea eax, [esp + 0x20]
push eax
push 1
mov ecx, ebp
mov dword [esp + 0x504], 5
call fcn.004b53e0
mov ecx, eax
call fcn.004ba020
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x4f8], 0xffffffff
mov dword [esp + 0x1c], 0x5f1558
jb 0x4ffe9b
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004274fc
add esp, 4
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 4]
push edi
push eax
push 0x2c
call fcn.004b5290
mov esi, eax
add esp, 0xc
cmp esi, edi
je 0x4ffef7
push 0xa
push 0x5fd914
lea ecx, [esp + 0x54]
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], edi
mov byte [esp + 0x58], 0
call fcn.00402f00
lea eax, [esp + 0x4c]
or ebx, 4
push eax
mov ecx, esi
mov dword [esp + 0x4fc], 6
mov dword [esp + 0x18], ebx
call fcn.004b7280
mov esi, eax
jmp 0x4ffef9
xor esi, esi
push 0x5fd920
lea ecx, [esp + 0x20]
call fcn.0048cd50
push esi
lea ecx, [esp + 0x20]
push ecx
push 1
mov ecx, ebp
mov dword [esp + 0x504], 7
call fcn.004b53e0
mov ecx, eax
call fcn.004ba020
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x1c], 0x5f1558
jb 0x4fff44
mov edx, dword [esp + 0x24]
push edx
call fcn.004274fc
add esp, 4
test bl, 4
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], edi
mov byte [esp + 0x24], 0
mov dword [esp + 0x1c], 0x5f13d0
mov dword [esp + 0x4f8], 0xffffffff
je 0x4fff88
and ebx, 0xfffffffb
cmp dword [esp + 0x64], 0x10
mov dword [esp + 0x14], ebx
jb 0x4fff88
mov eax, dword [esp + 0x50]
push eax
call fcn.004274fc
add esp, 4
mov ecx, dword [esp + 0x84]
push ecx
call fcn.00427501
mov edx, dword [esp + 0x70]
mov edi, eax
mov eax, dword [esp + 0xc8]
add esp, 4
mov dword [esp + 0x70], edi
mov dword [esp + 0x80], eax
mov esi, 1
mov dword [esp + 0x78], edi
mov dword [esp + 0x74], edx
lea ecx, [ecx]
cmp dword [esp + 0x68], 0
jbe 0x500045
lea edi, [eax + 3]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x7c], eax
mov bl, byte [edi]
movzx ecx, bl
mov eax, ecx
cdq
mov ebp, 0x11
idiv ebp
test edx, edx
je 0x4fffef
cmp esi, 8
jge 0x4fffef
lea esi, [ebp - 9]
jmp 0x50001f
mov eax, ecx
cdq
mov ebp, 0x55
idiv ebp
test edx, edx
je 0x500007
cmp esi, 4
jge 0x500007
lea esi, [ebp - 0x51]
jmp 0x50001f
mov eax, ecx
cdq
mov ecx, 0xff
idiv ecx
test edx, edx
je 0x50001f
cmp esi, 2
jge 0x50001f
mov esi, 2
mov eax, dword [esp + 0x78]
mov byte [eax], bl
add eax, 1
add edi, 4
sub dword [esp + 0x7c], 1
mov dword [esp + 0x78], eax
jne 0x4fffd2
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x3c]
add eax, dword [esp + 0xbc]
sub dword [esp + 0x74], 1
mov dword [esp + 0x80], eax
jne 0x4fffc0
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
push 1
push edx
push eax
push esi
push edi
mov dword [esp + 0x88], esi
call fcn.004f7120
add esp, 0x14
push eax
push edi
mov ecx, ebp
call fcn.004b8f80
mov esi, dword [esp + 0x40]
mov eax, dword [esi + 4]
push 0
push eax
push 0x20
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x5000b1
fild dword [esp + 0x74]
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.004b5b20
mov edi, eax
jmp 0x5000b3
xor edi, edi
push 0x5fd92c
lea ecx, [esp + 0x20]
call fcn.0048cd50
push edi
lea ecx, [esp + 0x20]
push ecx
push 1
mov ecx, ebp
mov dword [esp + 0x504], 8
call fcn.004b53e0
mov ecx, eax
call fcn.004ba020
mov ebx, 0x10
cmp dword [esp + 0x38], ebx
mov dword [esp + 0x4f8], 0xffffffff
mov dword [esp + 0x1c], 0x5f1558
jb 0x50010d
mov edx, dword [esp + 0x24]
push edx
call fcn.004274fc
add esp, 4
mov ecx, ebp
call fcn.004b7d10
mov eax, dword [esi + 4]
push 0
push eax
push ebx
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x500133
push ebp
mov ecx, eax
call fcn.004b5410
mov edi, eax
jmp 0x500135
xor edi, edi
push 0x5fd940
lea ecx, [esp + 0x20]
call fcn.0048cd50
push edi
lea eax, [esp + 0x20]
push eax
push 1
mov ecx, esi
mov dword [esp + 0x504], 9
call fcn.004b53e0
mov ecx, eax
call fcn.004ba020
cmp dword [esp + 0x38], ebx
mov dword [esp + 0x4f8], 0xffffffff
mov dword [esp + 0x1c], 0x5f1558
jb 0x50018a
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004274fc
add esp, 4
mov edi, dword [esp + 0x40]
mov esi, dword [edi + 0x50]
mov eax, dword [esi + 4]
lea edx, [esp + 0xb4]
push edx
push eax
call sub.gdiplus.dll_GdipBitmapUnlockBits
xor ebp, ebp
cmp eax, ebp
je 0x5001ab
mov dword [esi + 8], eax
mov eax, dword [edi + 4]
cmp byte [eax + 0x8f], 0
je 0x50087c
lea ecx, [esp + 0x1b]
push ecx
lea edx, [esp + 0x1f]
push edx
lea ecx, [esp + 0x94]
call fcn.005013f0
mov esi, dword [esp + 0x84]
push esi
mov dword [esp + 0x4fc], 0xa
call fcn.00427501
push 0x300
mov dword [esp + 0x80], eax
lea eax, [esp + 0x1f4]
push ebp
push eax
mov byte [esp + 0x2a], 1
mov dword [esp + 0x4c], ebp
call fcn.0044dac0
add esp, 0x10
cmp esi, ebp
mov dword [esp + 0x80], ebp
jbe 0x50067e
lea ecx, [esp + 0x1ee]
xor ebp, ebp
mov dword [esp + 0x7c], ecx
jmp 0x500230
cmp dword [esp + 0x3c], 0x100
ja 0x50067e
mov ecx, dword [esp + 0x48]
mov al, byte [ecx + ebp + 1]
mov bl, byte [ecx + ebp]
cmp bl, al
mov cl, byte [ecx + ebp + 2]
mov byte [esp + 0x47], al
mov byte [esp + 0x1b], cl
jne 0x50025d
cmp bl, cl
je 0x500262
mov byte [esp + 0x1a], 0
xor edx, edx
mov dh, byte [esp + 0x1b]
movzx eax, bl
lea ecx, [esp + 0x74]
push ecx
lea ecx, [esp + 0x90]
mov dl, byte [esp + 0x4b]
shl edx, 8
or edx, eax
mov dword [esp + 0x78], edx
lea edx, [esp + 0x50]
push edx
call fcn.005010d0
mov esi, dword [esp + 0x4c]
test esi, esi
mov edi, dword [esp + 0x94]
je 0x5002a8
lea eax, [esp + 0x90]
cmp esi, eax
je 0x5002ad
call fcn.0044b7ad
cmp dword [esp + 0x50], edi
jne 0x500304
mov eax, dword [esp + 0x3c]
cmp eax, 0x100
mov dword [esp + 0x70], eax
jae 0x5002f8
mov eax, dword [esp + 0x7c]
mov cl, byte [esp + 0x47]
mov dl, byte [esp + 0x1b]
mov esi, dword [esp + 0x3c]
mov byte [eax - 1], cl
mov byte [eax - 2], bl
mov byte [eax], dl
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x90]
mov byte [esp + esi + 0xf0], bl
call fcn.00501960
mov dword [eax], esi
mov eax, dword [esp + 0x70]
add dword [esp + 0x3c], 1
add dword [esp + 0x7c], 3
jmp 0x500322
test esi, esi
jne 0x50030d
call fcn.0044b7ad
mov ecx, dword [esp + 0x50]
cmp ecx, dword [esi + 4]
jne 0x50031b
call fcn.0044b7ad
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x78]
mov byte [ecx + edx], al
add ecx, 1
add ebp, 3
cmp ecx, dword [esp + 0x84]
mov dword [esp + 0x80], ecx
jb 0x500230
cmp dword [esp + 0x3c], 0x100
ja 0x50067e
cmp dword [esp + 0x3c], 0
je 0x50067e
mov eax, dword [esp + 0x48]
push eax
call fcn.004274fc
mov ebx, dword [esp + 0x40]
add esp, 4
cmp ebx, 2
mov eax, 8
mov dword [esp + 0x48], eax
ja 0x500389
mov eax, 1
jmp 0x50039f
cmp ebx, 4
ja 0x500395
mov eax, 2
jmp 0x50039f
cmp ebx, 0x10
ja 0x5003a3
mov eax, 4
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x78]
push 0
push ecx
push edx
push eax
push esi
call fcn.004f7120
mov edi, dword [esp + 0x54]
add esp, 0x14
push eax
push esi
mov ecx, edi
call fcn.004b8f80
mov eax, dword [edi + 4]
push 0
push eax
push 0x20
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x5003f3
fild dword [esp + 0x48]
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.004b5b20
mov esi, eax
jmp 0x5003f5
xor esi, esi
push 0x5fd974
lea ecx, [esp + 0x20]
call fcn.0048cd50
push esi
lea eax, [esp + 0x20]
push eax
lea ecx, [edi + 0x2c]
mov byte [esp + 0x500], 0xe
call fcn.004ba020
cmp dword [esp + 0x38], 0x10
mov byte [esp + 0x4f8], 0xa
mov dword [esp + 0x1c], 0x5f1558
jb 0x50043d
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004274fc
add esp, 4
mov eax, dword [edi + 4]
push 0
push eax
push 0x20
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x50045c
mov ecx, eax
call fcn.004b77c0
mov ebp, eax
jmp 0x50045e
xor ebp, ebp
mov eax, dword [edi + 4]
push 0
push eax
push 0x2c
call fcn.004b5290
mov esi, eax
add esp, 0xc
test esi, esi
je 0x5004b4
push 7
push 0x5fd988
lea ecx, [esp + 0x54]
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], 0
mov byte [esp + 0x58], 0
call fcn.00402f00
or dword [esp + 0x14], 0x10
lea edx, [esp + 0x4c]
push edx
mov ecx, esi
mov byte [esp + 0x4fc], 0xf
call fcn.004b7280
jmp 0x5004b6
xor eax, eax
push eax
mov ecx, ebp
call fcn.004b8ee0
test byte [esp + 0x14], 0x10
mov dword [esp + 0x4f8], 0xa
je 0x5004e9
and dword [esp + 0x14], 0xffffffef
cmp dword [esp + 0x64], 0x10
jb 0x5004e9
mov eax, dword [esp + 0x50]
push eax
call fcn.004274fc
add esp, 4
mov eax, dword [edi + 4]
push 0
push eax
push 0x2c
call fcn.004b5290
mov esi, eax
add esp, 0xc
test esi, esi
je 0x500565
cmp byte [esp + 0x1a], 0
mov ecx, 0x5fd990
jne 0x500510
mov ecx, 0x5fd99c
mov eax, ecx
mov dword [esp + 0x64], 0xf
mov dword [esp + 0x60], 0
mov byte [esp + 0x50], 0
lea ebx, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x500530
sub eax, ebx
push eax
push ecx
lea ecx, [esp + 0x54]
call fcn.00402f00
or dword [esp + 0x14], 0x20
lea ecx, [esp + 0x4c]
push ecx
mov ecx, esi
mov byte [esp + 0x4fc], 0x10
call fcn.004b7280
mov ebx, dword [esp + 0x3c]
jmp 0x500567
xor eax, eax
push eax
mov ecx, ebp
call fcn.004b8ee0
test byte [esp + 0x14], 0x20
mov dword [esp + 0x4f8], 0xa
je 0x50059a
and dword [esp + 0x14], 0xffffffdf
cmp dword [esp + 0x64], 0x10
jb 0x50059a
mov edx, dword [esp + 0x50]
push edx
call fcn.004274fc
add esp, 4
mov eax, dword [edi + 4]
push 0
push eax
push 0x20
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x5005d2
lea ecx, [ebx - 1]
test ecx, ecx
mov dword [esp + 0x70], ecx
fild dword [esp + 0x70]
jge 0x5005c3
fadd qword [0x659f10]
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.004b5b20
jmp 0x5005d4
xor eax, eax
push eax
mov ecx, ebp
call fcn.004b8ee0
mov eax, dword [edi + 4]
push 0
push eax
push 0x50
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x5005fd
push 1
mov ecx, eax
call fcn.004b9dd0
mov esi, eax
jmp 0x5005ff
xor esi, esi
cmp byte [esp + 0x1a], 0
lea eax, [esi + 0x10]
push 0
je 0x50061e
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
push ebx
lea ecx, [esp + 0xf4]
push ecx
push eax
call edx
jmp 0x500632
mov ecx, dword [eax]
lea edx, [ebx + ebx*2]
push edx
lea edx, [esp + 0x1f4]
push edx
push eax
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [edi + 4]
push 0
push eax
push 0x10
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x500650
push esi
mov ecx, eax
call fcn.004b5410
jmp 0x500652
xor eax, eax
push eax
mov ecx, ebp
call fcn.004b8ee0
push 0x5fd9a8
lea ecx, [esp + 0x20]
call fcn.0048cd50
lea ecx, [esp + 0x1c]
push ebp
push ecx
mov byte [esp + 0x500], 0x11
lea ecx, [edi + 0x2c]
jmp 0x5007cd
mov eax, dword [esp + 0x78]
push eax
call fcn.004274fc
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x44]
add esp, 4
push ecx
push edx
mov ecx, edi
call fcn.004b8f80
mov eax, dword [edi + 4]
xor ebp, ebp
push ebp
push eax
push 0x2c
call fcn.004b5290
mov esi, eax
add esp, 0xc
cmp esi, ebp
je 0x5006f8
push 9
push 0x5fd948
lea ecx, [esp + 0x54]
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], ebp
mov byte [esp + 0x58], 0
call fcn.00402f00
or dword [esp + 0x14], 8
lea eax, [esp + 0x4c]
push eax
mov ecx, esi
mov byte [esp + 0x4fc], 0xb
call fcn.004b7280
mov esi, eax
jmp 0x5006fa
xor esi, esi
push 0x5fd954
lea ecx, [esp + 0x20]
call fcn.0048cd50
push esi
lea ecx, [esp + 0x20]
push ecx
lea ebx, [edi + 0x2c]
mov ecx, ebx
mov dword [esp + 0x500], 0xc
call fcn.004ba020
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x1c], 0x5f1558
jb 0x50073f
mov edx, dword [esp + 0x24]
push edx
call fcn.004274fc
add esp, 4
test byte [esp + 0x14], 8
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], ebp
mov byte [esp + 0x24], 0
mov dword [esp + 0x1c], 0x5f13d0
mov dword [esp + 0x4f8], 0xa
je 0x500783
and dword [esp + 0x14], 0xfffffff7
cmp dword [esp + 0x64], 0x10
jb 0x500783
mov eax, dword [esp + 0x50]
push eax
call fcn.004274fc
add esp, 4
mov eax, dword [edi + 4]
push ebp
push eax
push 0x20
call fcn.004b5290
add esp, 0xc
cmp eax, ebp
je 0x5007ad
fld qword [0x5f1800]
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.004b5b20
mov esi, eax
jmp 0x5007af
xor esi, esi
push 0x5fd960
lea ecx, [esp + 0x20]
call fcn.0048cd50
lea ecx, [esp + 0x1c]
push esi
push ecx
mov byte [esp + 0x500], 0xd
mov ecx, ebx
call fcn.004ba020
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x1c], 0x5f1558
jb 0x5007ee
mov edx, dword [esp + 0x24]
push edx
call fcn.004274fc
add esp, 4
mov eax, dword [esp + 0xa0]
xor esi, esi
cmp eax, esi
mov dword [esp + 0x4f8], 0xffffffff
je 0x50080f
push eax
call fcn.004274fc
add esp, 4
mov ecx, dword [esp + 0x94]
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], esi
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esp + 0x94]
mov dword [ecx + 4], ecx
mov ecx, dword [esp + 0x94]
cmp eax, ecx
mov dword [esp + 0x98], esi
je 0x500868
jmp 0x500850
mov esi, dword [eax]
push eax
call fcn.004274fc
mov ecx, dword [esp + 0x98]
add esp, 4
cmp esi, ecx
mov eax, esi
jne 0x500850
push ecx
call fcn.004274fc
mov edi, dword [esp + 0x44]
add esp, 4
xor ebp, ebp
jmp 0x5009ea
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x48]
push eax
push ecx
mov ecx, edi
call fcn.004b8f80
mov eax, dword [edi + 4]
push ebp
push eax
push 0x2c
call fcn.004b5290
mov esi, eax
add esp, 0xc
cmp esi, ebp
je 0x5008e6
push 9
push 0x5fd9b4
lea ecx, [esp + 0x54]
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], ebp
mov byte [esp + 0x58], 0
call fcn.00402f00
or dword [esp + 0x14], 0x40
lea edx, [esp + 0x4c]
push edx
mov ecx, esi
mov dword [esp + 0x4fc], 0x12
call fcn.004b7280
mov esi, eax
jmp 0x5008e8
xor esi, esi
push 0x5fd9c0
lea ecx, [esp + 0x20]
call fcn.0048cd50
push esi
lea eax, [esp + 0x20]
lea ebx, [edi + 0x2c]
push eax
mov ecx, ebx
mov dword [esp + 0x500], 0x13
call fcn.004ba020
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x1c], 0x5f1558
jb 0x50092d
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004274fc
add esp, 4
test byte [esp + 0x14], 0x40
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], ebp
mov byte [esp + 0x24], 0
mov dword [esp + 0x1c], 0x5f13d0
mov dword [esp + 0x4f8], 0xffffffff
je 0x500971
and dword [esp + 0x14], 0xffffffbf
cmp dword [esp + 0x64], 0x10
jb 0x500971
mov edx, dword [esp + 0x50]
push edx
call fcn.004274fc
add esp, 4
mov eax, dword [edi + 4]
push ebp
push eax
push 0x20
call fcn.004b5290
add esp, 0xc
cmp eax, ebp
je 0x50099b
fld qword [0x5f1800]
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.004b5b20
mov esi, eax
jmp 0x50099d
xor esi, esi
push 0x5fd9cc
lea ecx, [esp + 0x20]
call fcn.0048cd50
push esi
lea eax, [esp + 0x20]
push eax
mov ecx, ebx
mov dword [esp + 0x500], 0x14
call fcn.004ba020
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x4f8], 0xffffffff
mov dword [esp + 0x1c], 0x5f1558
jb 0x5009ea
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004274fc
add esp, 4
mov eax, dword [edi + 4]
push ebp
push eax
push 0x2c
call fcn.004b5290
mov esi, eax
add esp, 0xc
cmp esi, ebp
je 0x500a43
push 5
push 0x5fd9e0
lea ecx, [esp + 0x54]
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], ebp
mov byte [esp + 0x58], 0
call fcn.00402f00
or dword [esp + 0x14], 0x80
lea edx, [esp + 0x4c]
push edx
mov ecx, esi
mov dword [esp + 0x4fc], 0x15
call fcn.004b7280
mov esi, eax
jmp 0x500a45
xor esi, esi
push 0x5fd9e8
lea ecx, [esp + 0x20]
call fcn.0048cd50
push esi
lea eax, [esp + 0x20]
lea ebx, [edi + 0x2c]
push eax
mov ecx, ebx
mov dword [esp + 0x500], 0x16
call fcn.004ba020
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x1c], 0x5f1558
jb 0x500a8a
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004274fc
add esp, 4
test byte [esp + 0x14], 0x80
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], ebp
mov byte [esp + 0x24], 0
mov dword [esp + 0x1c], 0x5f13d0
mov dword [esp + 0x4f8], 0xffffffff
je 0x500ad1
and dword [esp + 0x14], 0xffffff7f
cmp dword [esp + 0x64], 0x10
jb 0x500ad1
mov edx, dword [esp + 0x50]
push edx
call fcn.004274fc
add esp, 4
mov eax, dword [edi + 4]
push ebp
push eax
push 0x20
call fcn.004b5290
add esp, 0xc
cmp eax, ebp
je 0x500b07
mov ecx, dword [esp + 0x68]
fild dword [esp + 0x68]
test ecx, ecx
jge 0x500af6
fadd qword [0x659f10]
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.004b5b20
mov esi, eax
jmp 0x500b09
xor esi, esi
push 0x5fd9f0
lea ecx, [esp + 0x20]
call fcn.0048cd50
push esi
lea edx, [esp + 0x20]
push edx
mov ecx, ebx
mov dword [esp + 0x500], 0x17
call fcn.004ba020
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x4f8], 0xffffffff
mov dword [esp + 0x1c], 0x5f1558
jb 0x500b56
mov eax, dword [esp + 0x24]
push eax
call fcn.004274fc
add esp, 4
mov eax, dword [edi + 4]
push ebp
push eax
push 0x20
call fcn.004b5290
add esp, 0xc
cmp eax, ebp
je 0x500b8c
mov ecx, dword [esp + 0x6c]
fild dword [esp + 0x6c]
test ecx, ecx
jge 0x500b7b
fadd qword [0x659f10]
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.004b5b20
mov esi, eax
jmp 0x500b8e
xor esi, esi
push 0x5fd9f8
lea ecx, [esp + 0x20]
call fcn.0048cd50
push esi
lea edx, [esp + 0x20]
push edx
mov ecx, ebx
mov dword [esp + 0x500], 0x18
call fcn.004ba020
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x4f8], 0xffffffff
mov dword [esp + 0x1c], 0x5f1558
jb 0x500bdb
mov eax, dword [esp + 0x24]
push eax
call fcn.004274fc
add esp, 4
mov eax, dword [edi + 4]
push ebp
push eax
push 0x2c
call fcn.004b5290
mov esi, eax
add esp, 0xc
cmp esi, ebp
je 0x500c34
push 0xb
push 0x5fda00
lea ecx, [esp + 0x54]
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], ebp
mov byte [esp + 0x58], 0
call fcn.00402f00
or dword [esp + 0x14], 0x100
lea ecx, [esp + 0x4c]
push ecx
mov ecx, esi
mov dword [esp + 0x4fc], 0x19
call fcn.004b7280
mov esi, eax
jmp 0x500c36
xor esi, esi
push 0x5fda0c
lea ecx, [esp + 0x20]
call fcn.0048cd50
push esi
lea edx, [esp + 0x20]
push edx
mov ecx, ebx
mov dword [esp + 0x500], 0x1a
call fcn.004ba020
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x1c], 0x5f1558
jb 0x500c78
mov eax, dword [esp + 0x24]
push eax
call fcn.004274fc
add esp, 4
test dword [esp + 0x14], 0x100
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], ebp
mov byte [esp + 0x24], 0
mov dword [esp + 0x1c], 0x5f13d0
mov dword [esp + 0x4f8], 0xffffffff
je 0x500cba
cmp dword [esp + 0x64], 0x10
jb 0x500cba
mov ecx, dword [esp + 0x50]
push ecx
call fcn.004274fc
add esp, 4
mov ecx, edi
call fcn.004b7d10
mov ecx, dword [edi + 0x50]
cmp ecx, ebp
je 0x500cd0
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [edi + 0x50], ebp
mov edi, dword [esp + 0x40]
xor ebx, ebx
mov eax, dword [edi + 4]
push ebx
push eax
push 0x14
call fcn.004b5290
add esp, 0xc
cmp eax, ebx
je 0x500cf7
push 1
mov ecx, eax
call fcn.004b5a60
mov ebx, eax
push 0x5fda14
lea ecx, [esp + 0xd0]
call fcn.0048cd50
push ebx
lea ecx, [esp + 0xd0]
push ecx
push 1
mov ecx, edi
mov dword [esp + 0x504], 0x1b
call fcn.004b53e0
mov ecx, eax
call fcn.004ba020
cmp dword [esp + 0xe8], 0x10
mov dword [esp + 0xcc], 0x5f1558
jb 0x500d51
mov edx, dword [esp + 0xd4]
push edx
call fcn.004274fc
add esp, 4
mov ecx, dword [esp + 0x4f0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x4d8]
xor ecx, esp
call fcn.0044abb9
add esp, 0x4e8
ret 4