Function at 0x10053cd1
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10075c6a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x290
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
and dword [ebp - 0x1c], 0
movzx eax, byte [ebp + 0x14]
test eax, eax
je 0x10054f3b
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x190], eax
lea eax, [ebp + 0xc]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x12c]
movzx eax, byte [eax]
test eax, eax
je 0x10054e9c
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf8]
movzx eax, word [eax]
cmp eax, 0x5a4d
je 0x10053d6b
jmp 0x10054f54
mov dword [ebp - 0xf0], 0x18b8
mov dword [ebp - 0x150], 0x100092e8
cmp dword [ebp - 0xf0], 0x1ad2
jle 0x10053e6b
and dword [ebp - 0xd0], 0
jmp 0x10053da5
mov eax, dword [ebp - 0xd0]
inc eax
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xd0], 0x46fd
jge 0x10053e6b
and dword [ebp - 0xcc], 0
jmp 0x10053dcb
mov eax, dword [ebp - 0xcc]
inc eax
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xcc], 0x6b60
jge 0x10053e66
and dword [ebp - 0xb4], 0
jmp 0x10053df1
mov eax, dword [ebp - 0xb4]
inc eax
mov dword [ebp - 0xb4], eax
cmp dword [ebp - 0xb4], 0x5bc2
jge 0x10053e61
and dword [ebp - 0xc8], 0
jmp 0x10053e13
mov eax, dword [ebp - 0xc8]
inc eax
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xc8], 0x75a5
jge 0x10053e5f
mov eax, dword [ebp - 0xb4]
sub eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xd0]
imul ecx, dword [ebp - 0xcc]
xor eax, ecx
cdq
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], edx
push dword [ebp - 0x158]
push dword [ebp - 0x15c]
mov ecx, 0x1061d018
call fcn.10024240
jmp 0x10053e06
jmp 0x10053de4
jmp 0x10053dbe
jmp 0x10053d98
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x20]
add ecx, dword [eax + 0x3c]
mov dword [ebp - 0x38], ecx
and dword [ebp - 4], 0
cmp dword [ebp - 0xf0], 0x17ee
jge 0x10053e9a
mov edx, dword [ebp - 0x150]
mov ecx, 0x1061d018
call fcn.10025e4a
jmp 0x10053eb6
or dword [ebp - 4], 0xffffffff
jmp 0x10053ec0
mov eax, dword [ebp - 0x38]
cmp dword [eax], 0x4550
je 0x10053ed0
jmp 0x10054f54
push 8
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x38]
lea eax, [ecx + eax + 0x78]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
cmp dword [eax + 4], 0
jne 0x10053eee
jmp 0x10054f54
and dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x38]
movzx eax, word [eax + 0x14]
mov ecx, dword [ebp - 0x38]
lea eax, [ecx + eax + 0x18]
mov dword [ebp - 0x48], eax
and dword [ebp - 0xd4], 0
jmp 0x10053f22
mov eax, dword [ebp - 0xd4]
inc eax
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x48]
add eax, 0x28
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x38]
movzx eax, word [eax + 6]
cmp dword [ebp - 0xd4], eax
jge 0x10053fa7
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xe0]
jb 0x10053fa2
mov eax, dword [ebp - 0x38]
push dword [eax + 0x38]
mov eax, dword [ebp - 0x48]
push dword [eax + 8]
call fcn.10052587
pop ecx
pop ecx
add eax, dword [ebp - 0xe0]
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x170]
jae 0x10053fa2
push 0xc6e
push 0x7ca3
push 1
push 1
lea eax, [ebp - 0x48]
push eax
push 0x6a89
lea eax, [ebp - 0x24]
push eax
push 0
push 0x4954
call fcn.100534f3
add esp, 0x24
jmp 0x10053fa7
jmp 0x10053f0c
cmp dword [ebp - 0x24], 0
jne 0x10053fb2
jmp 0x10054f54
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
add ecx, dword [eax]
add ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
xor ecx, ecx
call fcn.10050141
push eax
call fcn.1005ca44
pop ecx
mov byte [ebp - 0x70], 6
mov byte [ebp - 0x6f], 0xe9
mov byte [ebp - 0x6e], 5
mov byte [ebp - 0x6d], 0
mov byte [ebp - 0x6c], 4
mov byte [ebp - 0x6b], 9
mov byte [ebp - 0x6a], 7
mov byte [ebp - 0x69], 0xe
mov byte [ebp - 0x68], 3
mov byte [ebp - 0x67], 1
mov byte [ebp - 0x66], 0
mov byte [ebp - 0x65], 6
mov byte [ebp - 0x64], 9
mov byte [ebp - 0x63], 1
mov byte [ebp - 0x62], 4
mov byte [ebp - 0x61], 0x4c
mov byte [ebp - 0x60], 0x7b
mov byte [ebp - 0x5f], 0xd
mov byte [ebp - 0x5e], 1
mov byte [ebp - 0x5d], 2
mov byte [ebp - 0x5c], 7
mov byte [ebp - 0x5b], 1
mov byte [ebp - 0x5a], 2
mov byte [ebp - 0x59], 8
mov byte [ebp - 0x58], 5
xor eax, eax
inc eax
shl eax, 0
movzx eax, byte [ebp + eax - 0x70]
and eax, 0xd8
xor ecx, ecx
inc ecx
shl ecx, 0
movzx ecx, byte [ebp + ecx - 0x70]
or ecx, 0xd8
sub ecx, eax
xor eax, eax
inc eax
imul eax, eax, 0
movzx eax, byte [ebp + eax - 0x70]
mov byte [ebp + eax - 0x11c], cl
mov dword [ebp - 0x2c], 2
and dword [ebp - 0xa0], 0
jmp 0x1005407f
mov eax, dword [ebp - 0x2c]
inc eax
inc eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0x19
jae 0x1005411d
xor eax, eax
inc eax
imul eax, eax, 0
movzx eax, byte [ebp + eax - 0x70]
lea eax, [eax + eax + 2]
cmp dword [ebp - 0x2c], eax
jne 0x100540c0
mov eax, dword [ebp - 0x2c]
movzx eax, byte [ebp + eax - 0x70]
inc eax
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x2c]
movzx eax, byte [ebp + eax - 0x70]
mov ecx, dword [ebp - 0x2c]
lea eax, [ecx + eax - 1]
mov dword [ebp - 0x2c], eax
jmp 0x10054077
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0xa0]
movzx eax, byte [ebp + eax - 0x72]
movsx eax, byte [ebp + eax - 0x11c]
mov ecx, dword [ebp - 0x2c]
movzx ecx, byte [ebp + ecx - 0x6f]
and ecx, eax
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0xa0]
movzx eax, byte [ebp + eax - 0x72]
movsx eax, byte [ebp + eax - 0x11c]
mov edx, dword [ebp - 0x2c]
movzx edx, byte [ebp + edx - 0x6f]
or edx, eax
sub edx, ecx
mov eax, dword [ebp - 0x2c]
movzx eax, byte [ebp + eax - 0x70]
mov byte [ebp + eax - 0x11c], dl
and dword [ebp - 0xa0], 0
jmp 0x10054077
xor eax, eax
inc eax
imul eax, eax, 0xa
mov byte [ebp + eax - 0x11c], 0
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x258]
call fcn.1004f4d6
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x1b0], eax
mov dword [ebp - 4], 2
push 0xa
xor edx, edx
mov ecx, dword [ebp - 0x1b0]
call fcn.10050106
pop ecx
mov dword [ebp - 0x13c], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x258]
call fcn.100332d0
and dword [ebp - 0xc0], 0
jmp 0x10054191
mov eax, dword [ebp - 0xc0]
inc eax
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0xc0], 0xb
jae 0x100541aa
mov eax, dword [ebp - 0xc0]
mov byte [ebp + eax - 0x11c], 0
jmp 0x10054184
mov byte [ebp - 0x8c], 6
mov byte [ebp - 0x8b], 0x74
mov byte [ebp - 0x8a], 4
mov byte [ebp - 0x89], 0xd
mov byte [ebp - 0x88], 3
mov byte [ebp - 0x87], 6
mov byte [ebp - 0x86], 2
mov byte [ebp - 0x85], 5
mov byte [ebp - 0x84], 7
mov byte [ebp - 0x83], 1
mov byte [ebp - 0x82], 0
mov byte [ebp - 0x81], 7
mov byte [ebp - 0x80], 8
mov byte [ebp - 0x7f], 1
mov byte [ebp - 0x7e], 4
mov byte [ebp - 0x7d], 0x90
mov byte [ebp - 0x7c], 0xfe
mov byte [ebp - 0x7b], 0xd9
mov byte [ebp - 0x7a], 0xa0
mov byte [ebp - 0x79], 5
mov byte [ebp - 0x78], 1
mov byte [ebp - 0x77], 1
mov byte [ebp - 0x76], 7
mov byte [ebp - 0x75], 9
mov byte [ebp - 0x74], 6
xor eax, eax
inc eax
shl eax, 0
movzx eax, byte [ebp + eax - 0x8c]
and eax, 0x4d
xor ecx, ecx
inc ecx
shl ecx, 0
movzx ecx, byte [ebp + ecx - 0x8c]
or ecx, 0x4d
sub ecx, eax
xor eax, eax
inc eax
imul eax, eax, 0
movzx eax, byte [ebp + eax - 0x8c]
mov byte [ebp + eax - 0x128], cl
mov dword [ebp - 0x28], 2
and dword [ebp - 0xac], 0
jmp 0x10054283
mov eax, dword [ebp - 0x28]
inc eax
inc eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x19
jae 0x10054368
xor eax, eax
inc eax
imul eax, eax, 0
movzx eax, byte [ebp + eax - 0x8c]
lea eax, [eax + eax + 2]
cmp dword [ebp - 0x28], eax
jne 0x100542cd
mov eax, dword [ebp - 0x28]
movzx eax, byte [ebp + eax - 0x8c]
inc eax
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x28]
movzx eax, byte [ebp + eax - 0x8c]
mov ecx, dword [ebp - 0x28]
lea eax, [ecx + eax - 1]
mov dword [ebp - 0x28], eax
jmp 0x1005427b
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0xac]
movzx eax, byte [ebp + eax - 0x8e]
movsx eax, byte [ebp + eax - 0x128]
mov ecx, dword [ebp - 0x28]
movzx ecx, byte [ebp + ecx - 0x8b]
and ecx, eax
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0xac]
movzx eax, byte [ebp + eax - 0x8e]
movsx eax, byte [ebp + eax - 0x128]
mov edx, dword [ebp - 0x28]
movzx edx, byte [ebp + edx - 0x8b]
or edx, eax
sub edx, ecx
mov eax, dword [ebp - 0x28]
movzx eax, byte [ebp + eax - 0x8c]
mov byte [ebp + eax - 0x128], dl
push 0
push 0x59f5
lea eax, [ebp - 0xac]
push eax
push 0
push 0x6e6d
push 0x53e1
push 0x7365
push 0x2471
push 0x4f35
push 0x3053
call fcn.100538e2
add esp, 0x28
jmp 0x1005427b
xor eax, eax
inc eax
imul eax, eax, 0xa
mov byte [ebp + eax - 0x128], 0
lea eax, [ebp - 0x128]
push eax
lea ecx, [ebp - 0x270]
call fcn.1004f4d6
mov dword [ebp - 0x184], eax
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x134], eax
mov dword [ebp - 4], 3
push 0xa
xor edx, edx
mov ecx, dword [ebp - 0x134]
call fcn.10050106
pop ecx
mov dword [ebp - 0x18c], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x270]
call fcn.100332d0
and dword [ebp - 0xa8], 0
jmp 0x100543dc
mov eax, dword [ebp - 0xa8]
inc eax
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 0xb
jae 0x100543f5
mov eax, dword [ebp - 0xa8]
mov byte [ebp + eax - 0x128], 0
jmp 0x100543cf
push dword [ebp - 0x18c]
push dword [ebp - 0x13c]
call fcn.10051ca8
pop ecx
pop ecx
mov dword [ebp - 0x100], eax
push 0
push 0x18fe
push 0x2db0
push 0x5065
push 0x1538
lea eax, [ebp - 0x100]
push eax
push 0x5d8f
push 0x73f8
push 0xf9b
push 0x5199
lea eax, [ebp - 0x38]
push eax
push 0x51f0
push 1
call fcn.100535d4
add esp, 0x34
push 0x359c
push 1
push 0x4468
lea eax, [ebp - 0x100]
push eax
push 0x210d
push 0x6055
push 0x3607
push 1
lea eax, [ebp - 0x18]
push eax
push 0x14b0
call fcn.100525f5
add esp, 0x28
and dword [ebp - 0x50], 0
lea eax, [ebp - 0x50]
push eax
push 0x6485
push 0
push 1
lea eax, [ebp - 0x18]
push eax
push 0x66dc
push 0x1221
push 1
push 0x17c5
push 0x5c33
call fcn.100533cd
add esp, 0x28
mov dword [ebp - 0x10c], 0x3189
mov dword [ebp - 0x1ac], 0x10009344
cmp dword [ebp - 0x10c], 0x341f
jle 0x100545ea
and dword [ebp - 0xb0], 0
jmp 0x100544f4
mov eax, dword [ebp - 0xb0]
inc eax
mov dword [ebp - 0xb0], eax
cmp dword [ebp - 0xb0], 0x550b
jge 0x100545ba
and dword [ebp - 0xb8], 0
jmp 0x1005451a
mov eax, dword [ebp - 0xb8]
inc eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 0x2d78
jge 0x100545b5
and dword [ebp - 0x98], 0
jmp 0x10054540
mov eax, dword [ebp - 0x98]
inc eax
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0x21e3
jge 0x100545b0
and dword [ebp - 0xc4], 0
jmp 0x10054562
mov eax, dword [ebp - 0xc4]
inc eax
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xc4], 0x4a7a
jge 0x100545ae
mov eax, dword [ebp - 0xb0]
imul eax, dword [ebp - 0xb8]
sub eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0xc4]
sar eax, cl
cdq
mov dword [ebp - 0x168], eax
mov dword [ebp - 0x164], edx
push dword [ebp - 0x164]
push dword [ebp - 0x168]
mov ecx, 0x1061d018
call fcn.10024240
jmp 0x10054555
jmp 0x10054533
jmp 0x1005450d
jmp 0x100544e7
push 0
push 0x78b
push 0xfd
push 0x1602
push 0x6a4
push 0x1dab
push 0x140a
push 0x16be
push 0xb99
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 4
cmp dword [ebp - 0x10c], 0x3090
jge 0x10054616
mov edx, dword [ebp - 0x1ac]
mov ecx, 0x1061d018
call fcn.10025e4a
jmp 0x10054632
or dword [ebp - 4], 0xffffffff
jmp 0x1005463c
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x14]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x44], eax
and dword [ebp - 0x54], 0
jmp 0x10054655
mov eax, dword [ebp - 0x54]
inc eax
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
cmp eax, dword [ebp - 0x44]
jge 0x1005474f
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov eax, dword [eax + 0x14]
sub eax, dword [ecx + 0x18]
cmp dword [ebp - 0x54], eax
jae 0x100546b7
push 0
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x55e1
push 0x56a3
push 1
push 1
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x110]
push eax
push 0x20ba
lea eax, [ebp - 0x54]
push eax
push 0x250a
push 0x4955
push 0x1901
call fcn.10052767
add esp, 0x38
jmp 0x100546dd
push 0x2d20
push 0x4067
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x110]
push eax
push 0x228e
push 0
push 1
call fcn.10052e9a
add esp, 0x1c
push 0
lea eax, [ebp - 0x14]
push eax
push 0x2aec
lea eax, [ebp - 0x20]
push eax
push 0x335b
push 0x307
push 0x7dd
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x110]
push eax
push 0x3178
push 0x7be7
push 0x17f9
push 0
call fcn.100535d4
add esp, 0x34
push 0x4c4a
push 0x3a11
push 1
push 0
push 0x4f3a
push 0x45b7
push 0x32f1
push 1
lea eax, [ebp - 0x14]
push eax
call fcn.100534f3
add esp, 0x24
jmp 0x1005464e
push 1
push 0x4980
push 0x7bc3
lea eax, [ebp - 0x18]
push eax
push 0x2074
push 1
push 1
push 0x37bf
push 0x600e
lea eax, [ebp - 0x50]
push eax
push 0x4e8c
push 0x7da
push 0x3eef
push 0x11ea
call fcn.10052767
add esp, 0x38
lea eax, [ebp - 0x18]
push eax
push 0x5934
push 0x1eaf
push 0x79a5
push 1
push 1
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x44]
push eax
push 0x3869
call fcn.100528fc
add esp, 0x24
and dword [ebp - 0xd8], 0
jmp 0x100547d4
mov eax, dword [ebp - 0xd8]
inc eax
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd8]
cmp eax, dword [ebp - 0x44]
jge 0x10054831
lea eax, [ebp - 0x14]
push eax
push 1
push 0
lea eax, [ebp - 0x20]
push eax
push 0x6a9d
push 0x62d1
lea eax, [ebp - 0x24]
push eax
push 0x4c54
call fcn.10052c99
add esp, 0x20
push 0x4adb
push 0x5a36
push 1
push 0x4a08
push 1
push 0x2fa1
lea eax, [ebp - 0x14]
push eax
push 0x40fe
call fcn.10052df9
add esp, 0x20
jmp 0x100547c7
lea eax, [ebp - 0x44]
push eax
push 0x1062
push 1
push 1
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10052f82
add esp, 0x18
push 0x4f8c
push 0x3681
push 1
push 1
push 0x391a
lea eax, [ebp - 0x50]
push eax
push 0x5b7a
push 1
lea eax, [ebp - 0x18]
push eax
push 0x4882
call fcn.100533cd
add esp, 0x28
and dword [ebp - 0xbc], 0
jmp 0x10054893
mov eax, dword [ebp - 0xbc]
inc eax
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0x44]
jge 0x1005490f
push 0x2f35
push 0x1340
push 0x161b
push 0
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
push 0x2d54
push 0x56ed
push 1
push 0x7625
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0xbc]
push eax
call fcn.10052a29
add esp, 0x34
push 0x7b99
push 0x751c
push 1
push 1
push 0x63dd
lea eax, [ebp - 0x14]
push eax
push 0x500e
push 1
push 0x2242
call fcn.100534f3
add esp, 0x24
jmp 0x10054886
mov eax, dword [ebp - 0x44]
shl eax, 1
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
add ecx, dword [eax + 0xc]
add ecx, dword [ebp - 0x20]
push ecx
lea ecx, [ebp - 0x1e0]
call fcn.1004f4d6
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x1e0]
call fcn.10034c15
mov dword [ebp - 0xec], eax
push dword [ebp - 0xec]
mov eax, dword [ebp - 0xec]
shr eax, 1
push eax
call fcn.10051ca8
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x40], 2
mov byte [ebp - 0x3f], 0x76
mov byte [ebp - 0x3e], 1
mov byte [ebp - 0x3d], 8
mov byte [ebp - 0x3c], 3
mov byte [ebp - 0x3b], 8
mov byte [ebp - 0x3a], 0
mov byte [ebp - 0x39], 0x42
xor eax, eax
inc eax
shl eax, 0
movzx eax, byte [ebp + eax - 0x40]
and eax, 0x1a
xor ecx, ecx
inc ecx
shl ecx, 0
movzx ecx, byte [ebp + ecx - 0x40]
or ecx, 0x1a
sub ecx, eax
xor eax, eax
inc eax
imul eax, eax, 0
movzx eax, byte [ebp + eax - 0x40]
mov byte [ebp + eax - 0x94], cl
mov dword [ebp - 0x34], 2
and dword [ebp - 0x104], 0
jmp 0x100549d0
mov eax, dword [ebp - 0x34]
inc eax
inc eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 8
jae 0x10054a29
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x104]
movzx eax, byte [ebp + eax - 0x42]
movsx eax, byte [ebp + eax - 0x94]
mov ecx, dword [ebp - 0x34]
movzx ecx, byte [ebp + ecx - 0x3f]
and ecx, eax
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x104]
movzx eax, byte [ebp + eax - 0x42]
movsx eax, byte [ebp + eax - 0x94]
mov edx, dword [ebp - 0x34]
movzx edx, byte [ebp + edx - 0x3f]
or edx, eax
sub edx, ecx
mov eax, dword [ebp - 0x34]
movzx eax, byte [ebp + eax - 0x40]
mov byte [ebp + eax - 0x94], dl
jmp 0x100549c8
xor eax, eax
inc eax
shl eax, 2
mov byte [ebp + eax - 0x94], 0
cmp dword [ebp - 0x4c], 4
jle 0x10054af1
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x228]
call fcn.1004f4d6
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x14c], eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x1c]
or eax, 1
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x4c]
sub eax, 4
push eax
lea eax, [ebp - 0x210]
push eax
call fcn.10051e83
pop ecx
pop ecx
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x194]
mov dword [ebp - 0x1a4], eax
mov dword [ebp - 4], 8
mov eax, dword [ebp - 0x1c]
or eax, 2
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x14c]
mov edx, dword [ebp - 0x1a4]
lea ecx, [ebp - 0x288]
call fcn.10055855
pop ecx
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x180], eax
mov dword [ebp - 4], 9
mov eax, dword [ebp - 0x1c]
or eax, 4
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x180]
mov dword [ebp - 0xf4], eax
jmp 0x10054b1d
push dword [ebp - 0x4c]
lea eax, [ebp - 0x2a0]
push eax
call fcn.10051e83
pop ecx
pop ecx
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x1c]
or eax, 8
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x188], eax
push dword [ebp - 0x188]
lea ecx, [ebp - 0x1f8]
call fcn.10055105
mov dword [ebp - 4], 0xa
mov eax, dword [ebp - 0x1c]
and eax, 8
je 0x10054b58
and dword [ebp - 0x1c], 0xfffffff7
lea ecx, [ebp - 0x2a0]
call fcn.100332d0
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x1c]
and eax, 4
je 0x10054b73
and dword [ebp - 0x1c], 0xfffffffb
lea ecx, [ebp - 0x288]
call fcn.100332d0
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x1c]
and eax, 2
je 0x10054b8e
and dword [ebp - 0x1c], 0xfffffffd
lea ecx, [ebp - 0x210]
call fcn.100332d0
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x1c]
and eax, 1
je 0x10054ba9
and dword [ebp - 0x1c], 0xfffffffe
lea ecx, [ebp - 0x228]
call fcn.100332d0
and dword [ebp - 0x9c], 0
jmp 0x10054bbf
mov eax, dword [ebp - 0x9c]
inc eax
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 5
jae 0x10054bd8
mov eax, dword [ebp - 0x9c]
mov byte [ebp + eax - 0x94], 0
jmp 0x10054bb2
push 0x49ae
lea eax, [ebp - 0x18]
push eax
push 1
push 1
push 0x5bc5
push 0x40b1
lea eax, [ebp - 0x14]
push eax
push 0
push 0xbd0
push 0x144d
call fcn.100533cd
add esp, 0x28
push 0
push dword [ebp - 0x4c]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
add ecx, dword [eax + 0xc]
add ecx, dword [ebp - 0x20]
push ecx
lea ecx, [ebp - 0x1f8]
call fcn.1005514d
push 0x49ef
push 0x4fb2
lea eax, [ebp - 0x14]
push eax
push 0
push 0x2657
lea eax, [ebp - 0x4c]
push eax
push 1
push 0x2613
call fcn.10053aff
add esp, 0x20
push 0x6de2
lea eax, [ebp - 0x24]
push eax
push 0x7ee3
push 1
push 0x49b
push 0x6c53
push 0x5f89
lea eax, [ebp - 0x20]
push eax
push 1
lea eax, [ebp - 0x14]
push eax
push 0x77c
push 0x222c
push 0x72aa
call fcn.10052a29
add esp, 0x34
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0x18], 0
jbe 0x10054cf1
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x14]
sub ecx, dword [eax]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
sub eax, ecx
mov ecx, dword [ebp - 0x18]
xor edx, edx
div dword [ecx + 0x18]
cmp eax, 0xc
jbe 0x10054cc5
mov dword [ebp - 0x108], 0xc
jmp 0x10054ce3
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x14]
sub ecx, dword [eax]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
sub eax, ecx
mov ecx, dword [ebp - 0x18]
xor edx, edx
div dword [ecx + 0x18]
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0xfc], eax
jmp 0x10054cf8
and dword [ebp - 0xfc], 0
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], eax
and dword [ebp - 0xa4], 0
jmp 0x10054d1a
mov eax, dword [ebp - 0xa4]
inc eax
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xa4]
cmp ecx, dword [eax + 0x18]
jae 0x10054e15
push dword [ebp - 0xe4]
mov eax, dword [ebp - 0xe4]
cdq
sub eax, edx
sar eax, 1
push eax
call fcn.10051ca8
pop ecx
pop ecx
mov dword [ebp - 0xdc], eax
push dword [ebp - 0xdc]
lea eax, [ebp - 0x1c8]
push eax
call fcn.10051e83
pop ecx
pop ecx
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x162d
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x18]
push eax
push 1
push 1
call fcn.100536ed
add esp, 0x20
push 0
push dword [ebp - 0xdc]
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x20]
push eax
lea ecx, [ebp - 0x1c8]
call fcn.1005514d
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0xdc]
push eax
push 0
push 0
push 0x5a4e
push 0x5188
push 0x1157
push 1
push 0x1a09
call fcn.100534f3
add esp, 0x24
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
mov byte [ecx + eax], 0
push 0
push 1
lea eax, [ebp - 0x14]
push eax
push 0x409b
push 0x5c11
push 0x373e
call fcn.100530ee
add esp, 0x18
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x1c8]
call fcn.100332d0
jmp 0x10054d0d
and dword [ebp - 0xe8], 0
push 1
lea eax, [ebp - 0x24]
push eax
push 0x332a
push 0
push 0x277f
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0xe8]
push eax
push 0x4496
call fcn.100538e2
add esp, 0x28
lea eax, [ebp - 0x30]
push eax
push 0xb19
push 0x6304
push 1
lea eax, [ebp - 0xe8]
push eax
push 0x5031
push 1
push 0x6fef
call fcn.10053aff
add esp, 0x20
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1f8]
call fcn.100332d0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1e0]
call fcn.100332d0
jmp 0x10054f39
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x198], eax
mov eax, dword [ebp - 0x190]
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0x174]
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebp - 0x198]
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp - 0x1a0]
mov dword [ebp - 0x1a8], eax
push 1
mov eax, dword [ebp - 0x1a8]
push dword [eax]
lea eax, [ebp - 0x240]
push eax
mov ecx, dword [ebp - 0x19c]
call fcn.10055192
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0x138], eax
mov dword [ebp - 4], 0xf
push dword [ebp - 0x138]
mov ecx, dword [ebp - 0x140]
call fcn.1004f4f9
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x240]
call fcn.100332d0
jmp 0x10054f54
push 0x2f38
push 0x5b71
push 0
push 0x76ac
call fcn.10051c74
add esp, 0x10
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret