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

Disassembly:
sub esp, 0x160
push ebx
push ebp
lea ebp, [ecx + 0x528]
push esi
push edi
mov ecx, ebp
mov dword [esp + 0x20], ebp
call fcn.00401620
and eax, 0xff
cmp eax, 0xd
ja case.0x40f595.0
jmp dword [eax*4 + 0x410f84]
mov eax, 0x54cdd0
jmp 0x40f5fc
mov eax, 0x54cdd7
jmp 0x40f5fc
mov eax, 0x54cdde
jmp 0x40f5fc
mov eax, 0x54cde5
jmp 0x40f5fc
mov eax, 0x54cdec
jmp 0x40f5fc
mov eax, 0x54cdf3
jmp 0x40f5fc
mov eax, 0x54cdfa
jmp 0x40f5fc
mov eax, 0x54ce01
jmp 0x40f5fc
mov eax, 0x54ce08
jmp 0x40f5fc
mov eax, 0x54ce0f
jmp 0x40f5fc
mov eax, 0x54ce16
jmp 0x40f5fc
mov eax, 0x54ce1d
jmp 0x40f5fc
mov eax, 0x54ce24
jmp 0x40f5fc
mov eax, 0x54cdc9
mov ecx, dword [0x41a790]
mov dx, word [0x41a794]
xor ebx, ebx
mov dword [esp + 0x168], ecx
push ebx
lea ecx, [esp + 0x16c]
mov word [esp + 0x170], dx
mov edx, dword [esp + 0x178]
push 5
push ecx
push eax
push edx
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov ecx, 0x50
mov eax, 0xcccccccc
lea edi, [esp + 0x28]
rep stosd dword es:[edi], eax
xor eax, eax
mov dword [esp + 0x24], eax
cmp eax, ebx
jne 0x40f7b5
mov ecx, ebp
call fcn.00401730
mov dword [esp + 0x18], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x18]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x18], ecx
jg 0x40f664
mov ecx, ebp
call fcn.00401630
and eax, 0xff
mov dword [esp + 0x14], ebx
mov esi, eax
xor edx, edx
mov eax, 0x18
or edi, 0xffffffff
mov ecx, edx
sar edi, cl
mov ecx, eax
sub eax, 8
and edi, esi
sar edi, cl
mov ecx, edx
add edx, 8
shl edi, cl
mov ecx, dword [esp + 0x14]
or ecx, edi
cmp eax, 0xfffffff8
mov dword [esp + 0x14], ecx
jg 0x40f6a3
mov ecx, ebp
call fcn.00401830
mov dword [esp + 0x10], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x10]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x10], ecx
jg 0x40f6db
mov ecx, ebp
call fcn.00401920
xor edi, edi
mov dword [esp + 0x1c], eax
xor esi, esi
mov edx, 0x18
or eax, 0xffffffff
mov ecx, esi
sar eax, cl
mov ecx, dword [esp + 0x1c]
and eax, ecx
mov ecx, edx
sar eax, cl
mov ecx, esi
sub edx, 8
add esi, 8
shl eax, cl
or edi, eax
cmp edx, 0xfffffff8
jg 0x40f715
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ecx, eax
mov byte [esp + 0x2a], bl
sar eax, 0x10
sar ecx, 0x18
mov byte [esp + 0x29], al
mov eax, dword [esp + 0x10]
mov byte [esp + 0x28], cl
mov ecx, eax
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x2c], dl
mov byte [esp + 0x31], al
mov edx, edi
mov eax, edi
sar ecx, 0x18
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x2b], bl
mov byte [esp + 0x2d], bl
mov byte [esp + 0x2e], bl
mov byte [esp + 0x2f], bl
mov byte [esp + 0x30], cl
mov byte [esp + 0x32], bl
mov byte [esp + 0x33], bl
mov byte [esp + 0x34], dl
mov byte [esp + 0x35], al
mov byte [esp + 0x36], bl
mov byte [esp + 0x37], bl
mov byte [esp + 0x38], bl
mov byte [esp + 0x39], bl
mov byte [esp + 0x3a], bl
mov byte [esp + 0x3b], bl
jmp 0x410f44
cmp eax, 1
jne 0x40f921
mov ecx, ebp
call fcn.00401740
mov dword [esp + 0x10], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x10]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x10], ecx
jg 0x40f7d0
mov ecx, ebp
call fcn.00401640
and eax, 0xff
mov dword [esp + 0x14], ebx
mov esi, eax
xor edx, edx
mov eax, 0x18
or edi, 0xffffffff
mov ecx, edx
sar edi, cl
mov ecx, eax
sub eax, 8
and edi, esi
sar edi, cl
mov ecx, edx
add edx, 8
shl edi, cl
mov ecx, dword [esp + 0x14]
or ecx, edi
cmp eax, 0xfffffff8
mov dword [esp + 0x14], ecx
jg 0x40f80f
mov ecx, ebp
call fcn.00401840
mov dword [esp + 0x18], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x18]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x18], ecx
jg 0x40f847
mov ecx, ebp
call fcn.00401930
xor edi, edi
mov dword [esp + 0x1c], eax
xor esi, esi
mov edx, 0x18
or eax, 0xffffffff
mov ecx, esi
sar eax, cl
mov ecx, dword [esp + 0x1c]
and eax, ecx
mov ecx, edx
sar eax, cl
mov ecx, esi
sub edx, 8
add esi, 8
shl eax, cl
or edi, eax
cmp edx, 0xfffffff8
jg 0x40f881
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, eax
mov byte [esp + 0x3e], bl
sar eax, 0x10
sar ecx, 0x18
mov byte [esp + 0x3d], al
mov eax, dword [esp + 0x18]
mov byte [esp + 0x3c], cl
mov ecx, eax
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x40], dl
mov byte [esp + 0x45], al
mov edx, edi
mov eax, edi
sar ecx, 0x18
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x3f], bl
mov byte [esp + 0x41], bl
mov byte [esp + 0x42], bl
mov byte [esp + 0x43], bl
mov byte [esp + 0x44], cl
mov byte [esp + 0x46], bl
mov byte [esp + 0x47], bl
mov byte [esp + 0x48], dl
mov byte [esp + 0x49], al
mov byte [esp + 0x4a], bl
mov byte [esp + 0x4b], bl
mov byte [esp + 0x4c], bl
mov byte [esp + 0x4d], bl
mov byte [esp + 0x4e], bl
mov byte [esp + 0x4f], bl
jmp 0x410f44
cmp eax, 2
jne 0x40fa8d
mov ecx, ebp
call fcn.00401750
mov dword [esp + 0x10], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x10]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x10], ecx
jg 0x40f93c
mov ecx, ebp
call fcn.00401650
and eax, 0xff
mov dword [esp + 0x14], ebx
mov esi, eax
xor edx, edx
mov eax, 0x18
or edi, 0xffffffff
mov ecx, edx
sar edi, cl
mov ecx, eax
sub eax, 8
and edi, esi
sar edi, cl
mov ecx, edx
add edx, 8
shl edi, cl
mov ecx, dword [esp + 0x14]
or ecx, edi
cmp eax, 0xfffffff8
mov dword [esp + 0x14], ecx
jg 0x40f97b
mov ecx, ebp
call fcn.00401850
mov dword [esp + 0x18], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x18]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x18], ecx
jg 0x40f9b3
mov ecx, ebp
call fcn.00401940
xor edi, edi
mov dword [esp + 0x1c], eax
xor esi, esi
mov edx, 0x18
or eax, 0xffffffff
mov ecx, esi
sar eax, cl
mov ecx, dword [esp + 0x1c]
and eax, ecx
mov ecx, edx
sar eax, cl
mov ecx, esi
sub edx, 8
add esi, 8
shl eax, cl
or edi, eax
cmp edx, 0xfffffff8
jg 0x40f9ed
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, eax
mov byte [esp + 0x52], bl
sar eax, 0x10
sar ecx, 0x18
mov byte [esp + 0x51], al
mov eax, dword [esp + 0x18]
mov byte [esp + 0x50], cl
mov ecx, eax
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x54], dl
mov byte [esp + 0x59], al
mov edx, edi
mov eax, edi
sar ecx, 0x18
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x53], bl
mov byte [esp + 0x55], bl
mov byte [esp + 0x56], bl
mov byte [esp + 0x57], bl
mov byte [esp + 0x58], cl
mov byte [esp + 0x5a], bl
mov byte [esp + 0x5b], bl
mov byte [esp + 0x5c], dl
mov byte [esp + 0x5d], al
mov byte [esp + 0x5e], bl
mov byte [esp + 0x5f], bl
mov byte [esp + 0x60], bl
mov byte [esp + 0x61], bl
mov byte [esp + 0x62], bl
mov byte [esp + 0x63], bl
jmp 0x410f44
cmp eax, 3
jne 0x40fbf9
mov ecx, ebp
call fcn.00401760
mov dword [esp + 0x10], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x10]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x10], ecx
jg 0x40faa8
mov ecx, ebp
call fcn.00401660
and eax, 0xff
mov dword [esp + 0x14], ebx
mov esi, eax
xor edx, edx
mov eax, 0x18
or edi, 0xffffffff
mov ecx, edx
sar edi, cl
mov ecx, eax
sub eax, 8
and edi, esi
sar edi, cl
mov ecx, edx
add edx, 8
shl edi, cl
mov ecx, dword [esp + 0x14]
or ecx, edi
cmp eax, 0xfffffff8
mov dword [esp + 0x14], ecx
jg 0x40fae7
mov ecx, ebp
call fcn.00401860
mov dword [esp + 0x18], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x18]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x18], ecx
jg 0x40fb1f
mov ecx, ebp
call fcn.00401950
xor edi, edi
mov dword [esp + 0x1c], eax
xor esi, esi
mov edx, 0x18
or eax, 0xffffffff
mov ecx, esi
sar eax, cl
mov ecx, dword [esp + 0x1c]
and eax, ecx
mov ecx, edx
sar eax, cl
mov ecx, esi
sub edx, 8
add esi, 8
shl eax, cl
or edi, eax
cmp edx, 0xfffffff8
jg 0x40fb59
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, eax
mov byte [esp + 0x66], bl
sar eax, 0x10
sar ecx, 0x18
mov byte [esp + 0x65], al
mov eax, dword [esp + 0x18]
mov byte [esp + 0x64], cl
mov ecx, eax
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x68], dl
mov byte [esp + 0x6d], al
mov edx, edi
mov eax, edi
sar ecx, 0x18
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x67], bl
mov byte [esp + 0x69], bl
mov byte [esp + 0x6a], bl
mov byte [esp + 0x6b], bl
mov byte [esp + 0x6c], cl
mov byte [esp + 0x6e], bl
mov byte [esp + 0x6f], bl
mov byte [esp + 0x70], dl
mov byte [esp + 0x71], al
mov byte [esp + 0x72], bl
mov byte [esp + 0x73], bl
mov byte [esp + 0x74], bl
mov byte [esp + 0x75], bl
mov byte [esp + 0x76], bl
mov byte [esp + 0x77], bl
jmp 0x410f44
cmp eax, 4
jne 0x40fd89
mov ecx, ebp
call fcn.00401770
mov dword [esp + 0x10], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x10]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x10], ecx
jg 0x40fc14
mov ecx, ebp
call fcn.00401670
and eax, 0xff
mov dword [esp + 0x14], ebx
mov esi, eax
xor edx, edx
mov eax, 0x18
or edi, 0xffffffff
mov ecx, edx
sar edi, cl
mov ecx, eax
sub eax, 8
and edi, esi
sar edi, cl
mov ecx, edx
add edx, 8
shl edi, cl
mov ecx, dword [esp + 0x14]
or ecx, edi
cmp eax, 0xfffffff8
mov dword [esp + 0x14], ecx
jg 0x40fc53
mov ecx, ebp
call fcn.00401870
mov dword [esp + 0x18], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x18]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x18], ecx
jg 0x40fc8b
mov ecx, ebp
call fcn.00401960
xor edi, edi
mov dword [esp + 0x1c], eax
xor esi, esi
mov edx, 0x18
or eax, 0xffffffff
mov ecx, esi
sar eax, cl
mov ecx, dword [esp + 0x1c]
and eax, ecx
mov ecx, edx
sar eax, cl
mov ecx, esi
sub edx, 8
add esi, 8
shl eax, cl
or edi, eax
cmp edx, 0xfffffff8
jg 0x40fcc5
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, eax
mov byte [esp + 0x7a], bl
sar eax, 0x10
sar ecx, 0x18
mov byte [esp + 0x79], al
mov eax, dword [esp + 0x18]
mov byte [esp + 0x78], cl
mov ecx, eax
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x7c], dl
mov byte [esp + 0x81], al
mov edx, edi
mov eax, edi
sar ecx, 0x18
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x7b], bl
mov byte [esp + 0x7d], bl
mov byte [esp + 0x7e], bl
mov byte [esp + 0x7f], bl
mov byte [esp + 0x80], cl
mov byte [esp + 0x82], bl
mov byte [esp + 0x83], bl
mov byte [esp + 0x84], dl
mov byte [esp + 0x85], al
mov byte [esp + 0x86], bl
mov byte [esp + 0x87], bl
mov byte [esp + 0x88], bl
mov byte [esp + 0x89], bl
mov byte [esp + 0x8a], bl
mov byte [esp + 0x8b], bl
jmp 0x410f44
cmp eax, 5
jne 0x40ff31
mov ecx, ebp
call fcn.00401780
mov dword [esp + 0x10], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x10]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x10], ecx
jg 0x40fda4
mov ecx, ebp
call fcn.00401680
and eax, 0xff
mov dword [esp + 0x14], ebx
mov esi, eax
xor edx, edx
mov eax, 0x18
or edi, 0xffffffff
mov ecx, edx
sar edi, cl
mov ecx, eax
sub eax, 8
and edi, esi
sar edi, cl
mov ecx, edx
add edx, 8
shl edi, cl
mov ecx, dword [esp + 0x14]
or ecx, edi
cmp eax, 0xfffffff8
mov dword [esp + 0x14], ecx
jg 0x40fde3
mov ecx, ebp
call fcn.00401880
mov dword [esp + 0x18], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x18]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x18], ecx
jg 0x40fe1b
mov ecx, ebp
call fcn.00401970
xor edi, edi
mov dword [esp + 0x1c], eax
xor esi, esi
mov edx, 0x18
or eax, 0xffffffff
mov ecx, esi
sar eax, cl
mov ecx, dword [esp + 0x1c]
and eax, ecx
mov ecx, edx
sar eax, cl
mov ecx, esi
sub edx, 8
add esi, 8
shl eax, cl
or edi, eax
cmp edx, 0xfffffff8
jg 0x40fe55
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, eax
mov byte [esp + 0x8e], bl
sar eax, 0x10
sar ecx, 0x18
mov byte [esp + 0x8d], al
mov eax, dword [esp + 0x18]
mov byte [esp + 0x8c], cl
mov ecx, eax
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x90], dl
mov byte [esp + 0x95], al
mov edx, edi
mov eax, edi
sar ecx, 0x18
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x8f], bl
mov byte [esp + 0x91], bl
mov byte [esp + 0x92], bl
mov byte [esp + 0x93], bl
mov byte [esp + 0x94], cl
mov byte [esp + 0x96], bl
mov byte [esp + 0x97], bl
mov byte [esp + 0x98], dl
mov byte [esp + 0x99], al
mov byte [esp + 0x9a], bl
mov byte [esp + 0x9b], bl
mov byte [esp + 0x9c], bl
mov byte [esp + 0x9d], bl
mov byte [esp + 0x9e], bl
mov byte [esp + 0x9f], bl
jmp 0x410f44
cmp eax, 6
jne 0x4100d9
mov ecx, ebp
call fcn.00401790
mov dword [esp + 0x10], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x10]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x10], ecx
jg 0x40ff4c
mov ecx, ebp
call fcn.00401690
and eax, 0xff
mov dword [esp + 0x14], ebx
mov esi, eax
xor edx, edx
mov eax, 0x18
or edi, 0xffffffff
mov ecx, edx
sar edi, cl
mov ecx, eax
sub eax, 8
and edi, esi
sar edi, cl
mov ecx, edx
add edx, 8
shl edi, cl
mov ecx, dword [esp + 0x14]
or ecx, edi
cmp eax, 0xfffffff8
mov dword [esp + 0x14], ecx
jg 0x40ff8b
mov ecx, ebp
call fcn.00401890
mov dword [esp + 0x18], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x18]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x18], ecx
jg 0x40ffc3
mov ecx, ebp
call fcn.00401980
xor edi, edi
mov dword [esp + 0x1c], eax
xor esi, esi
mov edx, 0x18
or eax, 0xffffffff
mov ecx, esi
sar eax, cl
mov ecx, dword [esp + 0x1c]
and eax, ecx
mov ecx, edx
sar eax, cl
mov ecx, esi
sub edx, 8
add esi, 8
shl eax, cl
or edi, eax
cmp edx, 0xfffffff8
jg 0x40fffd
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, eax
mov byte [esp + 0xa2], bl
sar eax, 0x10
sar ecx, 0x18
mov byte [esp + 0xa1], al
mov eax, dword [esp + 0x18]
mov byte [esp + 0xa0], cl
mov ecx, eax
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0xa4], dl
mov byte [esp + 0xa9], al
mov edx, edi
mov eax, edi
sar ecx, 0x18
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0xa3], bl
mov byte [esp + 0xa5], bl
mov byte [esp + 0xa6], bl
mov byte [esp + 0xa7], bl
mov byte [esp + 0xa8], cl
mov byte [esp + 0xaa], bl
mov byte [esp + 0xab], bl
mov byte [esp + 0xac], dl
mov byte [esp + 0xad], al
mov byte [esp + 0xae], bl
mov byte [esp + 0xaf], bl
mov byte [esp + 0xb0], bl
mov byte [esp + 0xb1], bl
mov byte [esp + 0xb2], bl
mov byte [esp + 0xb3], bl
jmp 0x410f44
cmp eax, 7
jne 0x410281
mov ecx, ebp
call fcn.004017a0
mov dword [esp + 0x10], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x10]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x10], ecx
jg 0x4100f4
mov ecx, ebp
call fcn.004016a0
and eax, 0xff
mov dword [esp + 0x14], ebx
mov esi, eax
xor edx, edx
mov eax, 0x18
or edi, 0xffffffff
mov ecx, edx
sar edi, cl
mov ecx, eax
sub eax, 8
and edi, esi
sar edi, cl
mov ecx, edx
add edx, 8
shl edi, cl
mov ecx, dword [esp + 0x14]
or ecx, edi
cmp eax, 0xfffffff8
mov dword [esp + 0x14], ecx
jg 0x410133
mov ecx, ebp
call fcn.004018a0
mov dword [esp + 0x18], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x18]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x18], ecx
jg 0x41016b
mov ecx, ebp
call fcn.00401990
xor edi, edi
mov dword [esp + 0x1c], eax
xor esi, esi
mov edx, 0x18
or eax, 0xffffffff
mov ecx, esi
sar eax, cl
mov ecx, dword [esp + 0x1c]
and eax, ecx
mov ecx, edx
sar eax, cl
mov ecx, esi
sub edx, 8
add esi, 8
shl eax, cl
or edi, eax
cmp edx, 0xfffffff8
jg 0x4101a5
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, eax
mov byte [esp + 0xb6], bl
sar eax, 0x10
sar ecx, 0x18
mov byte [esp + 0xb5], al
mov eax, dword [esp + 0x18]
mov byte [esp + 0xb4], cl
mov ecx, eax
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0xb8], dl
mov byte [esp + 0xbd], al
mov edx, edi
mov eax, edi
sar ecx, 0x18
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0xb7], bl
mov byte [esp + 0xb9], bl
mov byte [esp + 0xba], bl
mov byte [esp + 0xbb], bl
mov byte [esp + 0xbc], cl
mov byte [esp + 0xbe], bl
mov byte [esp + 0xbf], bl
mov byte [esp + 0xc0], dl
mov byte [esp + 0xc1], al
mov byte [esp + 0xc2], bl
mov byte [esp + 0xc3], bl
mov byte [esp + 0xc4], bl
mov byte [esp + 0xc5], bl
mov byte [esp + 0xc6], bl
mov byte [esp + 0xc7], bl
jmp 0x410f44
cmp eax, 8
jne 0x410429
mov ecx, ebp
call fcn.004017b0
mov dword [esp + 0x10], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x10]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x10], ecx
jg 0x41029c
mov ecx, ebp
call fcn.004016b0
and eax, 0xff
mov dword [esp + 0x14], ebx
mov esi, eax
xor edx, edx
mov eax, 0x18
or edi, 0xffffffff
mov ecx, edx
sar edi, cl
mov ecx, eax
sub eax, 8
and edi, esi
sar edi, cl
mov ecx, edx
add edx, 8
shl edi, cl
mov ecx, dword [esp + 0x14]
or ecx, edi
cmp eax, 0xfffffff8
mov dword [esp + 0x14], ecx
jg 0x4102db
mov ecx, ebp
call fcn.004018b0
mov dword [esp + 0x18], ebx
xor esi, esi
mov edx, 0x18
or edi, 0xffffffff
mov ecx, esi
sar edi, cl
mov ecx, edx
sub edx, 8
and edi, eax
sar edi, cl
mov ecx, esi
add esi, 8
shl edi, cl
mov ecx, dword [esp + 0x18]
or ecx, edi
cmp edx, 0xfffffff8
mov dword [esp + 0x18], ecx
jg 0x410313
mov ecx, ebp
call fcn.004019a0
xor edi, edi
mov dword [esp + 0x1c], eax
xor esi, esi
mov edx, 0x18
or eax, 0xffffffff
mov ecx, esi
sar eax, cl
mov ecx, dword [esp + 0x1c]
and eax, ecx
mov ecx, edx
sar eax, cl
mov ecx, esi
sub edx, 8
add esi, 8
shl eax, cl
or edi, eax
cmp edx, 0xfffffff8
jg 0x41034d
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, eax
mov byte [esp + 0xca], bl
sar eax, 0x10
sar ecx, 0x18
mov byte [esp + 0xc9], al
mov eax, dword [esp + 0x18]
mov byte [esp + 0xc8], cl
mov ecx, eax
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0xcc], dl
mov byte [esp + 0xd1], al
mov edx, edi
mov eax, edi
sar ecx, 0x18
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0xcb], bl
mov byte [esp + 0xcd], bl
mov byte [esp + 0xce], bl
mov byte [esp + 0xcf], bl
mov byte [esp + 0xd0], cl
mov byte [esp + 0xd2], bl
mov byte [esp + 0xd3], bl
mov byte [esp + 0xd4], dl
mov byte [esp + 0xd5], al
mov byte [esp + 0xd6], bl
mov byte [esp + 0xd7], bl
mov byte [esp + 0xd8], bl
mov byte [esp + 0xd9], bl
mov byte [esp + 0xda], bl
mov byte [esp + 0xdb], bl
jmp 0x410f44
cmp eax, 9
jne 0x4105cd
mov ecx, ebp
call fcn.004017c0
xor edi, edi
mov dword [esp + 0x1c], eax
xor esi, esi
mov edx, 0x18
or eax, 0xffffffff
mov ecx, esi
sar eax, cl
mov ecx, dword [esp + 0x1c]
and eax, ecx
mov ecx, edx
sar eax, cl
mov ecx, esi
sub edx, 8
add esi, 8
shl eax, cl
or edi, eax
cmp edx, 0xfffffff8
jg 0x410446
mov ecx, ebp
mov dword [esp + 0x14], edi
call fcn.004016c0
and eax, 0xff
mov dword [esp + 0x10], ebx
mov esi, eax
xor edx, edx
mov eax, 0x18
or edi, 0xffffffff
mov ecx, edx
sar edi, cl
mov ecx, eax
sub eax, 8
and edi, esi
sar edi, cl
mov ecx, edx
add edx, 8
shl edi, cl
mov ecx, dword [esp + 0x10]
or ecx, edi
cmp eax, 0xfffffff8
mov dword [esp + 0x10], ecx
jg 0x410485
mov ecx, ebp
call fcn.004018c0
xor edi, edi
mov dword [esp + 0x1c], eax
xor esi, esi
mov edx, 0x18
or eax, 0xffffffff
mov ecx, esi
sar eax, cl
mov ecx, dword [esp + 0x1c]
and eax, ecx
mov ecx, edx
sar eax, cl
mov ecx, esi
sub edx, 8
add esi, 8
shl eax, cl
or edi, eax
cmp edx, 0xfffffff8
jg 0x4104bf
mov ecx, ebp
mov dword [esp + 0x1c], edi
call fcn.004019b0
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x4104f5
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, eax
mov byte [esp + 0xde], bl
sar eax, 0x10
sar ecx, 0x18
mov byte [esp + 0xdd], al
mov eax, dword [esp + 0x1c]
mov byte [esp + 0xdc], cl
mov ecx, eax
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0xe0], dl
mov byte [esp + 0xe5], al
mov edx, edi
mov eax, edi
sar ecx, 0x18
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0xdf], bl
mov byte [esp + 0xe1], bl
mov byte [esp + 0xe2], bl
mov byte [esp + 0xe3], bl
mov byte [esp + 0xe4], cl
mov byte [esp + 0xe6], bl
mov byte [esp + 0xe7], bl
mov byte [esp + 0xe8], dl
mov byte [esp + 0xe9], al
mov byte [esp + 0xea], bl
mov byte [esp + 0xeb], bl
mov byte [esp + 0xec], bl
mov byte [esp + 0xed], bl
mov byte [esp + 0xee], bl
mov byte [esp + 0xef], bl
jmp 0x410f40
cmp eax, 0xa
jne 0x410761
mov ecx, ebp
call fcn.004017d0
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x4105e6
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], edi
call fcn.004016d0
and eax, 0xff
xor edi, edi
mov esi, eax
xor edx, edx
mov eax, 0x18
or ebp, 0xffffffff
mov ecx, edx
sar ebp, cl
mov ecx, eax
sub eax, 8
and ebp, esi
sar ebp, cl
mov ecx, edx
add edx, 8
shl ebp, cl
or edi, ebp
cmp eax, 0xfffffff8
jg 0x410621
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], edi
call fcn.004018d0
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x410655
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], edi
call fcn.004019c0
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x410689
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ecx, eax
mov byte [esp + 0xf2], bl
sar eax, 0x10
sar ecx, 0x18
mov byte [esp + 0xf1], al
mov eax, dword [esp + 0x14]
mov byte [esp + 0xf0], cl
mov ecx, eax
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0xf4], dl
mov byte [esp + 0xf9], al
mov edx, edi
mov eax, edi
sar ecx, 0x18
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0xf3], bl
mov byte [esp + 0xf5], bl
mov byte [esp + 0xf6], bl
mov byte [esp + 0xf7], bl
mov byte [esp + 0xf8], cl
mov byte [esp + 0xfa], bl
mov byte [esp + 0xfb], bl
mov byte [esp + 0xfc], dl
mov byte [esp + 0xfd], al
mov byte [esp + 0xfe], bl
mov byte [esp + 0xff], bl
mov byte [esp + 0x100], bl
mov byte [esp + 0x101], bl
mov byte [esp + 0x102], bl
mov byte [esp + 0x103], bl
jmp 0x410f40
cmp eax, 0xb
jne 0x4108f5
mov ecx, ebp
call fcn.004017e0
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x41077a
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], edi
call fcn.004016e0
and eax, 0xff
xor edi, edi
mov esi, eax
xor edx, edx
mov eax, 0x18
or ebp, 0xffffffff
mov ecx, edx
sar ebp, cl
mov ecx, eax
sub eax, 8
and ebp, esi
sar ebp, cl
mov ecx, edx
add edx, 8
shl ebp, cl
or edi, ebp
cmp eax, 0xfffffff8
jg 0x4107b5
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], edi
call fcn.0040b860
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x4107e9
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], edi
call fcn.004019d0
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x41081d
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ecx, eax
mov byte [esp + 0x106], bl
sar eax, 0x10
sar ecx, 0x18
mov byte [esp + 0x105], al
mov eax, dword [esp + 0x14]
mov byte [esp + 0x104], cl
mov ecx, eax
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x108], dl
mov byte [esp + 0x10d], al
mov edx, edi
mov eax, edi
sar ecx, 0x18
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x107], bl
mov byte [esp + 0x109], bl
mov byte [esp + 0x10a], bl
mov byte [esp + 0x10b], bl
mov byte [esp + 0x10c], cl
mov byte [esp + 0x10e], bl
mov byte [esp + 0x10f], bl
mov byte [esp + 0x110], dl
mov byte [esp + 0x111], al
mov byte [esp + 0x112], bl
mov byte [esp + 0x113], bl
mov byte [esp + 0x114], bl
mov byte [esp + 0x115], bl
mov byte [esp + 0x116], bl
mov byte [esp + 0x117], bl
jmp 0x410f40
cmp eax, 0xc
jne 0x410a89
mov ecx, ebp
call fcn.004017f0
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x41090e
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], edi
call fcn.004016f0
and eax, 0xff
xor edi, edi
mov esi, eax
xor edx, edx
mov eax, 0x18
or ebp, 0xffffffff
mov ecx, edx
sar ebp, cl
mov ecx, eax
sub eax, 8
and ebp, esi
sar ebp, cl
mov ecx, edx
add edx, 8
shl ebp, cl
or edi, ebp
cmp eax, 0xfffffff8
jg 0x410949
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], edi
call fcn.004018e0
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x41097d
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], edi
call fcn.004019e0
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x4109b1
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ecx, eax
mov byte [esp + 0x11a], bl
sar eax, 0x10
sar ecx, 0x18
mov byte [esp + 0x119], al
mov eax, dword [esp + 0x14]
mov byte [esp + 0x118], cl
mov ecx, eax
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x11c], dl
mov byte [esp + 0x121], al
mov edx, edi
mov eax, edi
sar ecx, 0x18
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x11b], bl
mov byte [esp + 0x11d], bl
mov byte [esp + 0x11e], bl
mov byte [esp + 0x11f], bl
mov byte [esp + 0x120], cl
mov byte [esp + 0x122], bl
mov byte [esp + 0x123], bl
mov byte [esp + 0x124], dl
mov byte [esp + 0x125], al
mov byte [esp + 0x126], bl
mov byte [esp + 0x127], bl
mov byte [esp + 0x128], bl
mov byte [esp + 0x129], bl
mov byte [esp + 0x12a], bl
mov byte [esp + 0x12b], bl
jmp 0x410f40
cmp eax, 0xd
jne 0x410c1d
mov ecx, ebp
call fcn.00401800
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x410aa2
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], edi
call fcn.00401700
and eax, 0xff
xor edi, edi
mov esi, eax
xor edx, edx
mov eax, 0x18
or ebp, 0xffffffff
mov ecx, edx
sar ebp, cl
mov ecx, eax
sub eax, 8
and ebp, esi
sar ebp, cl
mov ecx, edx
add edx, 8
shl ebp, cl
or edi, ebp
cmp eax, 0xfffffff8
jg 0x410add
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], edi
call fcn.004018f0
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x410b11
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], edi
call fcn.004019f0
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x410b45
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ecx, eax
mov byte [esp + 0x12e], bl
sar eax, 0x10
sar ecx, 0x18
mov byte [esp + 0x12d], al
mov eax, dword [esp + 0x14]
mov byte [esp + 0x12c], cl
mov ecx, eax
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x130], dl
mov byte [esp + 0x135], al
mov edx, edi
mov eax, edi
sar ecx, 0x18
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x12f], bl
mov byte [esp + 0x131], bl
mov byte [esp + 0x132], bl
mov byte [esp + 0x133], bl
mov byte [esp + 0x134], cl
mov byte [esp + 0x136], bl
mov byte [esp + 0x137], bl
mov byte [esp + 0x138], dl
mov byte [esp + 0x139], al
mov byte [esp + 0x13a], bl
mov byte [esp + 0x13b], bl
mov byte [esp + 0x13c], bl
mov byte [esp + 0x13d], bl
mov byte [esp + 0x13e], bl
mov byte [esp + 0x13f], bl
jmp 0x410f40
cmp eax, 0xe
jne 0x410db1
mov ecx, ebp
call fcn.00401810
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x410c36
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], edi
call fcn.00401710
and eax, 0xff
xor edi, edi
mov esi, eax
xor edx, edx
mov eax, 0x18
or ebp, 0xffffffff
mov ecx, edx
sar ebp, cl
mov ecx, eax
sub eax, 8
and ebp, esi
sar ebp, cl
mov ecx, edx
add edx, 8
shl ebp, cl
or edi, ebp
cmp eax, 0xfffffff8
jg 0x410c71
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], edi
call fcn.00401900
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x410ca5
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], edi
call fcn.00401a00
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x410cd9
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ecx, eax
mov byte [esp + 0x142], bl
sar eax, 0x10
sar ecx, 0x18
mov byte [esp + 0x141], al
mov eax, dword [esp + 0x14]
mov byte [esp + 0x140], cl
mov ecx, eax
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x144], dl
mov byte [esp + 0x149], al
mov edx, edi
mov eax, edi
sar ecx, 0x18
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x143], bl
mov byte [esp + 0x145], bl
mov byte [esp + 0x146], bl
mov byte [esp + 0x147], bl
mov byte [esp + 0x148], cl
mov byte [esp + 0x14a], bl
mov byte [esp + 0x14b], bl
mov byte [esp + 0x14c], dl
mov byte [esp + 0x14d], al
mov byte [esp + 0x14e], bl
mov byte [esp + 0x14f], bl
mov byte [esp + 0x150], bl
mov byte [esp + 0x151], bl
mov byte [esp + 0x152], bl
mov byte [esp + 0x153], bl
jmp 0x410f40
cmp eax, 0xf
jne 0x410f48
mov ecx, ebp
call fcn.00401820
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x410dca
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], edi
call fcn.00401720
and eax, 0xff
xor edi, edi
mov esi, eax
xor edx, edx
mov eax, 0x18
or ebp, 0xffffffff
mov ecx, edx
sar ebp, cl
mov ecx, eax
sub eax, 8
and ebp, esi
sar ebp, cl
mov ecx, edx
add edx, 8
shl ebp, cl
or edi, ebp
cmp eax, 0xfffffff8
jg 0x410e05
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], edi
call fcn.00401910
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x410e39
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], edi
call fcn.00401a10
xor edi, edi
xor esi, esi
mov edx, 0x18
or ebp, 0xffffffff
mov ecx, esi
sar ebp, cl
mov ecx, edx
sub edx, 8
and ebp, eax
sar ebp, cl
mov ecx, esi
add esi, 8
shl ebp, cl
or edi, ebp
cmp edx, 0xfffffff8
jg 0x410e6d
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ecx, eax
mov byte [esp + 0x156], bl
sar eax, 0x10
sar ecx, 0x18
mov byte [esp + 0x155], al
mov eax, dword [esp + 0x14]
mov byte [esp + 0x154], cl
mov ecx, eax
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x158], dl
mov byte [esp + 0x15d], al
mov edx, edi
mov eax, edi
sar ecx, 0x18
sar edx, 0x18
sar eax, 0x10
mov byte [esp + 0x157], bl
mov byte [esp + 0x159], bl
mov byte [esp + 0x15a], bl
mov byte [esp + 0x15b], bl
mov byte [esp + 0x15c], cl
mov byte [esp + 0x15e], bl
mov byte [esp + 0x15f], bl
mov byte [esp + 0x160], dl
mov byte [esp + 0x161], al
mov byte [esp + 0x162], bl
mov byte [esp + 0x163], bl
mov byte [esp + 0x164], bl
mov byte [esp + 0x165], bl
mov byte [esp + 0x166], bl
mov byte [esp + 0x167], bl
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
inc eax
cmp eax, 0x140
mov dword [esp + 0x24], eax
jl 0x40f64a
mov edx, dword [esp + 0x174]
push ebx
lea ecx, [esp + 0x2c]
push 0x140
push ecx
push 0xc00000
push edx
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x160
ret 4