Function at 0x40fc80
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x45bd1c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x110
push ebx
push ebp
push esi
push edi
mov ebx, ecx
push 0x64
lea ecx, [esp + 0x80]
mov dword [esp + 0x5c], ebx
call fcn.0043c030
xor edi, edi
mov dword [esp + 0x128], edi
mov esi, 0x4626bc
mov dword [esp + 0x7c], esi
mov dword [esp + 0x128], 1
push 0x64
lea ecx, [esp + 0xd0]
call fcn.0043c030
mov byte [esp + 0x128], 2
mov dword [esp + 0xcc], esi
mov byte [esp + 0x128], 3
push 0x64
lea ecx, [esp + 0xec]
call fcn.0043c030
mov byte [esp + 0x128], 4
mov dword [esp + 0xe8], esi
mov byte [esp + 0x128], 5
push 0x64
lea ecx, [esp + 0x108]
call fcn.0043c030
mov byte [esp + 0x128], 6
mov dword [esp + 0x104], esi
mov byte [esp + 0x128], 7
push 0x64
lea ecx, [esp + 0xb4]
call fcn.0043c030
mov byte [esp + 0x128], 8
mov dword [esp + 0xb0], esi
mov byte [esp + 0x128], 9
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x64]
push ecx
mov ecx, ebx
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], edi
call fcn.0040e4c0
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x3c]
push eax
mov ecx, ebx
call fcn.0040e640
test eax, eax
je 0x40fda7
mov ecx, dword [esp + 0x38]
mov edx, dword [ebx + 0x140]
imul ecx, ecx, 0x4c
mov eax, dword [esp + 0x44]
mov dword [ecx + edx + 0x44], eax
movzx eax, word [ebx + 0x4a]
cmp eax, edi
mov ecx, dword [ebx + 0x78]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], edi
jbe 0x41012b
xor edx, edx
mov dword [esp + 0x40], edx
jmp 0x40fdd0
mov edx, dword [esp + 0x40]
mov edi, edi
mov eax, dword [ebx + 0x140]
mov esi, dword [edx + eax + 0xc]
cmp esi, dword [ebx + 0xd4]
jne 0x410035
mov ecx, dword [ebx + 0x140]
mov edi, dword [edx + ecx + 8]
lea eax, [edx + ecx]
mov ecx, dword [ebx + 0xd8]
cmp edi, ecx
jne 0x410035
mov edx, dword [eax + 0x34]
test edx, edx
je 0x41012b
test ecx, ecx
mov eax, dword [eax + 0x30]
jbe 0x41010b
mov ecx, 0xfffffffc
lea edx, [eax + 4]
sub ecx, eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x3c], ecx
lea ecx, [ecx]
mov eax, dword [esp + 0x18]
mov esi, dword [eax - 4]
test esi, esi
mov ebp, dword [eax]
je 0x41010b
push ebp
push esi
mov ecx, ebx
call fcn.0040ee80
mov edi, eax
push esi
lea ecx, [esp + 0x80]
shr edi, 2
call fcn.0043c100
mov ecx, dword [esp + 0x130]
mov word [eax], di
mov eax, dword [esp + 0x1c]
push eax
call fcn.0043c100
test ebp, ebp
mov word [eax], 0
jns 0x410006
lea ecx, [esp + 0x38]
push ecx
push esi
mov ecx, ebx
call fcn.0040e370
test eax, eax
je 0x410006
mov eax, dword [esp + 0x38]
mov edx, dword [ebx + 0x140]
imul eax, eax, 0x4c
mov edi, dword [edx + eax + 0x18]
lea ecx, [edx + eax]
mov ecx, dword [ecx + 0x30]
sub esi, edi
test ecx, ecx
je 0x410006
mov edi, dword [eax + edx + 0xc]
add eax, edx
mov edx, dword [eax + 0x34]
add edi, esi
cmp esi, edx
jae 0x410006
add esi, ecx
je 0x410006
mov ebp, dword [esp + 0x130]
lea eax, [edi - 8]
push eax
mov ecx, ebp
call fcn.0043c100
add edi, 0xfffffffc
push edi
mov ecx, ebp
mov word [eax], 0
call fcn.0043c100
mov word [eax], 0
mov esi, dword [esi - 4]
lea eax, [esp + 0x44]
push eax
push esi
mov ecx, ebx
call fcn.0040e370
test eax, eax
je 0x410006
mov eax, dword [esp + 0x44]
mov ecx, dword [ebx + 0x140]
imul eax, eax, 0x4c
mov edx, dword [ecx + eax + 0x18]
add ecx, eax
sub esi, edx
mov edx, dword [ecx + 0x30]
test edx, edx
je 0x410006
mov ecx, dword [ebx + 0x140]
mov edi, dword [eax + ecx + 0x34]
add eax, ecx
mov ecx, dword [eax + 0xc]
add ecx, esi
cmp esi, edi
jae 0x410006
add edx, esi
je 0x410006
mov eax, dword [edx]
cmp eax, 0x19930520
jb 0x40ff6e
cmp eax, 0x19930522
ja 0x40ff6e
push ebp
push ecx
push eax
push edx
mov ecx, ebx
call fcn.0040e710
jmp 0x410006
cmp eax, 0x10
ja 0x40ffd9
shl eax, 2
xor edi, edi
test eax, eax
mov dword [esp + 0x50], eax
jbe 0x410006
sub edx, ecx
lea esi, [ecx + 4]
mov dword [esp + 0x48], edx
lea ecx, [ecx]
mov edx, dword [esp + 0x48]
mov eax, dword [edx + esi]
test eax, eax
je 0x40ffcb
push 0
push eax
mov ecx, ebx
call fcn.0040e370
test eax, eax
jne 0x40ffbe
push edi
push str.error__C_specific_handler__d_
push 0x4753e0
call fcn.0040bd00
add esp, 0xc
jmp 0x40ffcb
push esi
mov ecx, ebp
call fcn.0043c100
mov word [eax], 0
mov eax, dword [esp + 0x50]
inc edi
add esi, 4
cmp edi, eax
jb 0x40ff90
jmp 0x410006
mov ecx, eax
and ecx, 0xffff0000
cmp ecx, 0xffff0000
je 0x410006
push eax
push str.Unknown_EH_MAGIC___08X
push 0x4753e0
call fcn.0040bd00
add esp, 0xc
mov dword [0x4766ec], 1
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
add eax, 8
add edx, eax
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0xd8]
add ecx, 8
cmp edx, eax
mov dword [esp + 0x1c], ecx
jb 0x40fe30
jmp 0x41010b
mov eax, dword [ebx + 0x140]
mov ecx, dword [eax + edx + 0x24]
add eax, edx
test ecx, 0x40000000
je 0x41010b
test ecx, 0x20000000
jne 0x41010b
mov ecx, dword [eax + 0xc]
cmp ecx, dword [ebx + 0xcc]
jne 0x410073
mov edx, dword [eax + 8]
cmp edx, dword [ebx + 0xd0]
je 0x41012b
mov ecx, dword [esp + 0x40]
mov eax, dword [ebx + 0x140]
add eax, ecx
mov ecx, dword [eax + 0x30]
mov eax, dword [eax + 0x34]
test eax, eax
jbe 0x41010b
lea ebp, [eax - 1]
sub ecx, esi
shr ebp, 2
mov dword [esp + 0x48], ecx
inc ebp
lea ebx, [ebx]
mov eax, dword [ebx + 0xc4]
cmp eax, esi
mov edx, dword [esp + 0x48]
mov edi, dword [edx + esi]
ja 0x4100bd
mov ecx, dword [ebx + 0xc8]
add ecx, eax
cmp esi, ecx
jb 0x410105
mov eax, dword [ebx + 0xbc]
cmp eax, esi
ja 0x4100d3
mov edx, dword [ebx + 0xc0]
add edx, eax
cmp esi, edx
jb 0x410105
push 0
push edi
mov ecx, ebx
call fcn.0040e370
test eax, eax
je 0x410105
mov ecx, dword [esp + 0x130]
push esi
call fcn.0043c100
push edi
lea ecx, [esp + 0xd0]
mov word [eax], 0
call fcn.0043c100
mov word [eax], 0
add esi, 4
dec ebp
jne 0x4100a0
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
inc eax
add edx, 0x4c
cmp eax, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], edx
jb 0x40fdca
xor eax, eax
cmp word [ebx + 0x4a], ax
mov dword [esp + 0x24], eax
jbe 0x4112bf
jmp 0x410140
mov ecx, dword [ebx + 0x140]
imul eax, eax, 0x4c
mov edx, dword [ecx + eax + 0x24]
add ecx, eax
test edx, 0x20000000
mov dword [esp + 0x30], eax
je 0x4112aa
mov edx, dword [ebx + 0x140]
mov edx, dword [eax + edx + 0xc]
cmp edx, dword [ebx + 0xcc]
mov dword [esp + 0x40], edx
jne 0x410184
mov ecx, dword [ecx + 8]
cmp ecx, dword [ebx + 0xd0]
je 0x4112bf
mov edx, dword [ebx + 0x140]
mov ecx, dword [eax + edx + 0x30]
add eax, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x34]
lea edx, [ecx - 0x10]
xor eax, eax
test edx, edx
mov dword [esp + 0x28], ecx
jbe 0x4101c3
mov esi, dword [esp + 0x20]
add esi, eax
mov ecx, 2
mov edi, str._target_
xor ebp, ebp
repe cmpsd dword [esi], dword es:[edi]
je 0x4101bf
inc eax
cmp eax, edx
jb 0x4101a4
mov ecx, dword [esp + 0x28]
test ecx, ecx
mov byte [esp + 0x13], 1
mov dword [esp + 0x14], 0
jbe 0x410b39
jmp 0x4101e0
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
mov ebp, dword [edi + edx]
lea esi, [edi + eax]
mov eax, dword [ebx + 0xc4]
cmp eax, esi
mov dword [esp + 0x1c], esi
ja 0x410210
mov ecx, dword [ebx + 0xc8]
add ecx, eax
cmp esi, ecx
jb 0x410b22
mov eax, dword [ebx + 0xbc]
cmp eax, esi
ja 0x41022e
mov edx, dword [ebx + 0xc0]
add edx, eax
cmp esi, edx
jb 0x410b22
mov edi, dword [esp + 0x14]
mov eax, dword [ebx + 0x140]
mov ecx, dword [esp + 0x30]
cmp edi, dword [ecx + eax + 0x44]
jae 0x4102f0
lea edx, [esp + 0xa0]
push edx
push ebp
lea ecx, [esp + 0xd4]
call fcn.0043be80
test eax, eax
je 0x410277
mov ecx, dword [esp + 0x130]
push esi
call fcn.0043c100
mov word [eax], 0
mov byte [esp + 0x13], 1
jmp 0x410b22
lea eax, [esp + 0x9c]
push eax
push ebp
lea ecx, [esp + 0x84]
call fcn.0043be80
test eax, eax
je 0x41026d
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x130]
push ebp
mov ecx, esi
call fcn.0043c100
mov word [eax], 0
mov al, byte [esp + 0x13]
test al, al
je 0x4102e6
test edi, edi
je 0x4102e6
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0xb0]
push ecx
mov ecx, dword [edi + eax - 4]
push esi
push edx
push ecx
mov ecx, ebx
call fcn.0040ecb0
test eax, eax
je 0x4102e6
add ebp, 0xfffffffc
push ebp
mov ecx, esi
call fcn.0043c100
mov word [eax], 0
mov byte [esp + 0x13], 0
jmp 0x410b22
mov eax, ebp
shr eax, 0x10
mov dword [esp + 0x38], eax
movzx eax, ax
cmp eax, 0x759f
mov ecx, 1
jg 0x41042c
je 0x410344
cmp eax, 0x359f
jg 0x4103d3
je 0x410344
cmp eax, 0x159f
jg 0x4103b5
je 0x410344
cmp eax, 0x51f
je 0x410341
cmp eax, 0x59f
je 0x410344
cmp eax, 0x151f
jne 0x4104d2
or ecx, 0xffffffff
mov esi, ebp
and esi, 0xfff
imul esi, ecx
mov ecx, dword [esp + 0x20]
add esi, 8
lea eax, [esi + edi]
mov edi, dword [eax + ecx]
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x410637
cmp dword [esp + 0x60], edi
ja 0x410637
cmp edi, eax
jae 0x410637
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x130]
add esi, edi
push esi
call fcn.0043c100
cmp ebp, 0xe59fc004
mov word [eax], 0
jne 0x410b22
push edi
lea ecx, [esp + 0xec]
call fcn.0043c100
mov word [eax], 0
jmp 0x410b22
cmp eax, 0x251f
je 0x410341
cmp eax, 0x259f
je 0x410344
cmp eax, 0x351f
je 0x410341
jmp 0x4104d2
cmp eax, 0x559f
jg 0x410406
je 0x410344
cmp eax, 0x451f
je 0x410341
cmp eax, 0x459f
je 0x410344
cmp eax, 0x551f
je 0x410341
jmp 0x4104d2
cmp eax, 0x651f
je 0x410341
cmp eax, 0x659f
je 0x410344
cmp eax, 0x751f
je 0x410341
jmp 0x4104d2
cmp eax, 0xb59f
jg 0x41048c
je 0x410344
cmp eax, 0x959f
jg 0x410469
je 0x410344
cmp eax, 0x851f
je 0x410341
cmp eax, 0x859f
je 0x410344
cmp eax, 0x951f
je 0x410341
jmp 0x4104d2
cmp eax, 0xa51f
je 0x410341
cmp eax, 0xa59f
je 0x410344
cmp eax, 0xb51f
je 0x410341
jmp 0x4104d2
cmp eax, 0xd59f
jg 0x4104bc
je 0x410344
cmp eax, 0xc51f
je 0x410341
cmp eax, 0xc59f
je 0x410344
cmp eax, 0xd51f
je 0x410341
jmp 0x4104d2
cmp eax, 0xe51f
je 0x410341
cmp eax, 0xe59f
je 0x410344
mov edx, ebp
and edx, 0xfffffff0
cmp edx, 0xe08ff000
jne 0x410569
mov eax, dword [esp + 0x20]
mov eax, dword [edi + eax - 4]
and ebp, 0xf
shr eax, 0x10
xor eax, ebp
cmp eax, 0xe1d0
je 0x41051e
cmp eax, 0xe590
je 0x410517
cmp eax, 0xe7d0
jne 0x410b22
mov edi, dword [esp + 0x14]
mov esi, 1
jmp 0x410523
mov esi, 4
jmp 0x410523
mov esi, 2
mov ecx, dword [esp + 0x20]
mov edx, 8
lea ecx, [edi + ecx - 8]
mov eax, dword [ecx]
mov ebp, eax
and ebp, 0xfff00000
cmp ebp, 0xe3500000
je 0x410552
add edx, 4
sub ecx, 4
cmp edx, 0x50
jb 0x410530
jmp 0x410b22
movzx eax, ax
imul eax, esi
add eax, 3
and eax, 0xfffffffc
add edi, eax
mov dword [esp + 0x14], edi
jmp 0x410b22
cmp ebp, 0xe6000010
jne 0x410b22
mov eax, dword [esp + 0x14]
cmp eax, 0x14
jb 0x410b22
mov edx, eax
mov eax, dword [esp + 0x20]
cmp dword [edx + eax - 4], 0x112fff1c
jne 0x410b22
mov ecx, edx
mov edx, eax
cmp dword [ecx + edx - 8], 0xe35c0000
jne 0x410b22
mov eax, ecx
mov ecx, edx
mov esi, dword [eax + ecx - 0x14]
mov edi, dword [eax + ecx - 0x10]
lea edx, [esi + 4]
cmp edx, edi
jne 0x410b22
lea eax, [esp + 0x70]
push eax
push esi
mov ecx, ebx
call fcn.0040e370
test eax, eax
je 0x410b22
mov ecx, dword [esp + 0x70]
mov eax, dword [ebx + 0x140]
imul ecx, ecx, 0x4c
add ecx, eax
mov eax, dword [ecx + 0x24]
test eax, 0x20000000
jne 0x410b22
test eax, eax
jns 0x410b22
push esi
call fcn.0040e210
test eax, eax
je 0x410b22
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x130]
lea edx, [edi - 0x14]
push edx
mov ecx, esi
call fcn.0043c100
add edi, 0xfffffff0
push edi
mov ecx, esi
mov word [eax], 0
call fcn.0043c100
mov word [eax], 0
jmp 0x410b22
lea edx, [esp + 0x50]
push edx
push edi
mov ecx, ebx
call fcn.0040e370
test eax, eax
je 0x410b22
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x130]
add esi, eax
push esi
call fcn.0043c100
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x54]
mov word [eax], 0
push edx
lea eax, [esp + 0x3c]
push eax
push edi
mov ecx, ebx
call fcn.0040e430
mov esi, eax
test esi, esi
je 0x410b22
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x24]
cmp ecx, edx
jne 0x4109ae
mov eax, dword [ebx + 0x140]
imul ecx, ecx, 0x4c
add eax, ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0x18]
cmp ecx, edi
ja 0x4109ae
mov eax, dword [eax + 0x44]
add eax, ecx
cmp edi, eax
jae 0x4109ae
mov ecx, dword [esp + 0x130]
mov edi, dword [esp + 0x48]
push ecx
push edx
mov edx, dword [esp + 0x3c]
push edi
push edx
push esi
mov ecx, ebx
call fcn.0040ef40
test eax, eax
jne 0x410b22
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
push eax
push ecx
push edi
push edx
push esi
mov ecx, ebx
call fcn.0040f030
test eax, eax
jne 0x410b22
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
push eax
push ecx
push edi
push edx
push esi
mov ecx, ebx
call fcn.0040f350
test eax, eax
jne 0x410b22
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x7c]
push eax
mov eax, dword [esp + 0x38]
push ecx
push edx
push edi
push eax
push esi
mov ecx, ebx
call fcn.0040f490
test eax, eax
jne 0x410b22
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x18]
push edx
push edi
push eax
push ecx
push esi
mov ecx, ebx
call fcn.0040f810
test eax, eax
jne 0x410b22
mov edx, dword [esp + 0x130]
mov eax, dword [esp + 0x24]
push edx
push eax
push edi
push esi
mov ecx, ebx
call fcn.0040f6e0
test eax, eax
jne 0x410b22
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
push ecx
push edx
push edi
push eax
push esi
mov ecx, ebx
call fcn.0040f760
test eax, eax
jne 0x410b22
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x24]
push ecx
push edx
push edi
push esi
mov ecx, ebx
call fcn.0040f8e0
test eax, eax
jne 0x410b22
mov eax, dword [ebx + 0x140]
mov ebp, dword [esi]
mov ecx, dword [esp + 0x30]
push ebp
add ecx, eax
call fcn.0040e1e0
test eax, eax
je 0x410897
mov eax, dword [esp + 0x34]
test eax, eax
mov dword [esp + 0x18], 0
jbe 0x410855
mov eax, esi
sub eax, edi
mov ebp, edi
mov dword [esp + 0x1c], eax
jmp 0x410810
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + ebp]
test eax, eax
je 0x410855
mov edx, dword [esp + 0x30]
mov ecx, dword [ebx + 0x140]
push eax
add ecx, edx
call fcn.0040e1e0
test eax, eax
je 0x410855
mov ecx, dword [esp + 0x130]
push ebp
call fcn.0043c100
mov ecx, dword [esp + 0x34]
mov word [eax], 0
mov eax, dword [esp + 0x18]
add eax, 4
add ebp, 4
cmp eax, ecx
mov dword [esp + 0x18], eax
jb 0x41080c
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0xb0]
push edx
mov edx, dword [esi - 4]
push eax
push ecx
push edx
mov ecx, ebx
call fcn.0040ecb0
test eax, eax
je 0x410b22
mov ecx, dword [esp + 0x130]
add edi, 0xfffffffc
push edi
call fcn.0043c100
mov word [eax], 0
jmp 0x410b22
lea eax, [esp + 0x6c]
push eax
push ebp
mov ecx, ebx
call fcn.0040e370
test eax, eax
je 0x410958
mov eax, dword [esp + 0x6c]
cmp eax, dword [esp + 0x24]
je 0x410958
mov ecx, dword [ebx + 0x140]
imul eax, eax, 0x4c
test dword [eax + ecx + 0x24], 0x20000000
mov dword [esp + 0x38], eax
je 0x410958
mov eax, dword [esp + 0x34]
test eax, eax
mov dword [esp + 0x18], 0
jbe 0x410b22
sub esi, edi
mov dword [esp + 0x1c], esi
jmp 0x4108f5
mov esi, dword [esp + 0x1c]
mov esi, dword [edi + esi]
test esi, esi
je 0x410b22
mov ebp, dword [ebx + 0x140]
mov ecx, dword [esp + 0x38]
push esi
add ecx, ebp
call fcn.0040e1e0
test eax, eax
jne 0x41092b
mov edx, dword [esp + 0x30]
push esi
lea ecx, [edx + ebp]
call fcn.0040e1e0
test eax, eax
je 0x410b22
mov ecx, dword [esp + 0x130]
push edi
call fcn.0043c100
mov ecx, dword [esp + 0x34]
mov word [eax], 0
mov eax, dword [esp + 0x18]
add eax, 4
add edi, 4
cmp eax, ecx
mov dword [esp + 0x18], eax
jb 0x4108f1
jmp 0x410b22
mov eax, dword [esp + 0x34]
xor ebp, ebp
test eax, eax
jbe 0x410b22
sub esi, edi
mov eax, dword [edi + esi]
test eax, eax
je 0x41099b
mov edx, dword [esp + 0x18]
mov ecx, dword [ebx + 0x140]
push eax
add ecx, edx
call fcn.0040be40
test eax, eax
je 0x410b22
mov ecx, dword [esp + 0x130]
push edi
call fcn.0043c100
mov word [eax], 0
mov eax, dword [esp + 0x34]
add ebp, 4
add edi, 4
cmp ebp, eax
jb 0x410968
jmp 0x410b22
cmp word [esp + 0x38], 0xe59f
mov edi, dword [esp + 0x48]
jne 0x4109ed
lea eax, [esp + 0x104]
push eax
lea ecx, [esp + 0xb4]
push ecx
mov ecx, dword [esp + 0x138]
lea eax, [esp + 0x84]
push eax
push ecx
push edx
push edi
push esi
mov ecx, ebx
call fcn.0040f940
test eax, eax
jne 0x410b22
mov eax, dword [esp + 0x34]
test eax, eax
mov dword [esp + 0x38], 0
jbe 0x410b22
sub esi, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x1c], esi
jmp 0x410a11
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
movzx edi, word [ebx + 0x4a]
mov esi, dword [edx + esi]
xor edx, edx
test edi, edi
jbe 0x410b22
mov eax, dword [ebx + 0x140]
add eax, 0x18
nop
mov ecx, dword [eax]
cmp ecx, esi
ja 0x410a3f
mov ebp, dword [eax - 0x10]
add ebp, ecx
cmp esi, ebp
jb 0x410a4c
inc edx
add eax, 0x4c
cmp edx, edi
jb 0x410a30
jmp 0x410b22
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x130]
push eax
call fcn.0043c100
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x50]
mov word [eax], 0
push edx
lea eax, [esp + 0x4c]
push eax
push esi
mov ecx, ebx
call fcn.0040e430
test eax, eax
je 0x410b00
mov ecx, dword [esp + 0x44]
test ecx, ecx
mov dword [esp + 0x18], 0
jbe 0x410b00
mov esi, dword [esp + 0x78]
sub eax, esi
mov dword [esp + 0x4c], eax
jmp 0x410aa1
mov eax, dword [esp + 0x4c]
movzx edi, word [ebx + 0x4a]
mov ebp, dword [eax + esi]
xor edx, edx
test edi, edi
jbe 0x410b00
mov eax, dword [ebx + 0x140]
add eax, 0x18
mov ecx, dword [eax]
cmp ecx, ebp
ja 0x410aca
mov ebx, dword [eax - 0x10]
add ebx, ecx
cmp ebp, ebx
jb 0x410ad4
mov ebx, dword [esp + 0x58]
inc edx
add eax, 0x4c
cmp edx, edi
jb 0x410ab7
jmp 0x410b00
mov ecx, dword [esp + 0x130]
push esi
call fcn.0043c100
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x58]
mov word [eax], 0
mov eax, dword [esp + 0x18]
add eax, 4
add esi, 4
cmp eax, ecx
mov dword [esp + 0x18], eax
jb 0x410a9d
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
add eax, 4
add edx, 4
cmp eax, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], edx
jb 0x410a0d
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
add eax, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
jb 0x4101e0
mov eax, dword [esp + 0x28]
xor esi, esi
test eax, eax
mov dword [esp + 0x14], esi
jbe 0x411096
jmp 0x410b50
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + ecx]
mov edx, dword [esp + 0x40]
lea edi, [esi + ecx]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x2c], eax
sub eax, ecx
lea ecx, [esp + 0x98]
push ecx
lea ebp, [esi + edx]
push eax
lea ecx, [esp + 0xf0]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x54], eax
call fcn.0043be80
test eax, eax
je 0x410b96
push ebp
jmp 0x41106e
mov edx, dword [ebx + 0x140]
mov eax, dword [esp + 0x30]
cmp esi, dword [eax + edx + 0x44]
jae 0x41107f
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x1c
jne 0x410be1
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
push ecx
push edx
push ebp
sub eax, esi
push eax
push edi
mov ecx, ebx
call fcn.0040f030
test eax, eax
je 0x410be9
lea ecx, [esi + eax - 4]
mov dword [esp + 0x14], ecx
jmp 0x41107f
cmp ecx, 0x100
jae 0x410c43
mov edx, dword [esp + 0x20]
mov ecx, dword [esi + edx + 4]
mov edx, dword [esp + 0x30]
mov eax, dword [ebx + 0x140]
add eax, edx
mov edx, dword [eax + 0x18]
cmp edx, ecx
ja 0x410c3f
mov eax, dword [eax + 0x44]
add eax, edx
cmp ecx, eax
jae 0x410c3f
mov edx, dword [esp + 0x130]
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push eax
push ebp
sub ecx, esi
push ecx
push edi
mov ecx, ebx
call fcn.0040f130
test eax, eax
je 0x410c3f
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x41107f
mov ecx, dword [esp + 0x2c]
mov edx, ecx
and edx, 0xfffffff0
cmp edx, 0x80000000
jne 0x410c82
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
push eax
push ecx
push ebp
sub edx, esi
push edx
push edi
mov ecx, ebx
call fcn.0040ef40
test eax, eax
je 0x410c7e
lea eax, [esi + eax - 4]
mov dword [esp + 0x14], eax
jmp 0x41107f
mov ecx, dword [esp + 0x2c]
mov edi, dword [ebx + 0x140]
mov edx, dword [esp + 0x30]
mov eax, dword [edx + edi + 0x18]
cmp eax, ecx
ja 0x410e2c
mov ecx, edx
mov edx, dword [ecx + edi + 0x44]
add edx, eax
mov eax, dword [esp + 0x2c]
cmp eax, edx
jae 0x410e2c
mov edx, dword [esp + 0x28]
mov esi, eax
mov eax, ecx
sub esi, dword [eax + edi + 0x18]
mov ecx, dword [esp + 0x20]
lea ebp, [esi + ecx]
xor ecx, ecx
sub edx, esi
je 0x410ce0
mov ax, word [ebp + ecx*2]
test ax, ax
je 0x410ce0
cmp ax, 0x20
jb 0x410cea
cmp ax, 0x80
jae 0x410cea
inc ecx
cmp ecx, edx
jb 0x410cc5
mov ecx, dword [esp + 0x1c]
push ecx
jmp 0x41106e
mov edx, dword [esp + 0x20]
lea ebp, [esi + edx]
mov edx, dword [esp + 0x28]
xor ecx, ecx
sub edx, esi
je 0x410ce0
jmp 0x410d00
mov al, byte [ecx + ebp]
test al, al
je 0x410ce0
cmp al, 0x20
jb 0x410d1e
cmp al, 0x80
ja 0x410d1e
inc ecx
cmp ecx, edx
jb 0x410d00
mov ecx, dword [esp + 0x1c]
push ecx
jmp 0x41106e
mov ebp, dword [esp + 0x28]
cmp esi, ebp
jae 0x410d73
mov eax, dword [esp + 0x20]
mov eax, dword [esi + eax]
lea ecx, [esp + 0x64]
push ecx
push eax
mov ecx, ebx
call fcn.0040e310
test eax, eax
je 0x410d73
mov edx, dword [esp + 0x64]
imul edx, edx, 0x4c
mov eax, dword [edx + edi + 0x24]
test eax, eax
jns 0x410d73
mov eax, dword [esp + 0x40]
add esi, eax
push esi
mov esi, dword [esp + 0x134]
mov ecx, esi
call fcn.0043c100
mov ecx, dword [esp + 0x1c]
push ecx
mov word [eax], 0
mov ecx, esi
jmp 0x411075
mov edx, dword [esp + 0x14]
add edx, 0xc
cmp ebp, edx
mov ebp, dword [esp + 0x18]
jb 0x410dba
mov eax, dword [ebp + 4]
test eax, eax
je 0x410df7
mov edx, dword [esp + 0x30]
mov ecx, dword [edx + edi + 0x18]
cmp ecx, eax
ja 0x410d9f
mov esi, dword [edx + edi + 0x44]
add esi, ecx
cmp eax, esi
jb 0x410df7
mov eax, dword [ebp + 8]
test eax, eax
je 0x410df7
mov ecx, dword [edx + edi + 0x18]
cmp ecx, eax
ja 0x410dbe
mov esi, dword [edx + edi + 0x44]
add esi, ecx
cmp eax, esi
jb 0x410df7
jmp 0x410dbe
mov edx, dword [esp + 0x30]
cmp dword [esp + 0x14], 8
jb 0x410e01
mov eax, dword [ebp - 4]
test eax, eax
je 0x410df7
mov ecx, dword [edx + edi + 0x18]
cmp ecx, eax
ja 0x410dde
mov esi, dword [edx + edi + 0x44]
add esi, ecx
cmp eax, esi
jb 0x410df7
mov eax, dword [ebp - 8]
test eax, eax
je 0x410df7
mov ecx, dword [edx + edi + 0x18]
cmp ecx, eax
ja 0x410e01
mov edx, dword [edx + edi + 0x44]
add edx, ecx
cmp eax, edx
jae 0x410e01
mov eax, dword [esp + 0x1c]
push eax
jmp 0x41106e
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x130]
lea ecx, [esp + 0xac]
push ecx
push edx
mov ecx, esi
call fcn.0043be80
test eax, eax
je 0x410e2c
mov eax, dword [esp + 0x1c]
push eax
mov ecx, esi
jmp 0x411075
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x74]
push edx
push eax
mov ecx, ebx
call fcn.0040e370
test eax, eax
je 0x41107f
mov esi, dword [esp + 0x74]
mov ecx, dword [ebx + 0x140]
imul esi, esi, 0x4c
mov eax, dword [ecx + esi + 0x24]
test eax, eax
jns 0x41107f
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x130]
mov edx, ecx
mov eax, dword [edx + esi + 0xc]
lea ecx, [edx + esi]
sub eax, dword [ecx + 0x18]
lea ecx, [esp + 0xa8]
push ecx
add eax, ebp
push eax
mov ecx, edi
call fcn.0043be80
test eax, eax
je 0x410e97
mov edx, dword [esp + 0x1c]
push edx
mov ecx, edi
jmp 0x411075
mov eax, dword [ebx + 0x140]
mov edx, dword [eax + esi + 0x18]
mov ecx, dword [eax + esi + 0xc]
add eax, esi
mov eax, dword [esp + 0x40]
sub ecx, edx
mov edx, dword [esp + 0x28]
sub ecx, eax
add ecx, ebp
mov ebp, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x24]
push edx
lea eax, [ebp + 4]
push eax
push ecx
call fcn.0040e290
test al, al
je 0x410ed9
mov edx, dword [esp + 0x1c]
push edx
mov ecx, edi
jmp 0x411075
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
lea eax, [ebp + 0xc]
cmp ecx, eax
jb 0x410f36
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x411005
mov edx, dword [esp + 0x30]
mov eax, dword [ebx + 0x140]
add eax, edx
mov edx, dword [eax + 0x18]
cmp edx, ecx
ja 0x410f17
mov ebp, dword [eax + 8]
add ebp, edx
cmp ecx, ebp
jb 0x411005
mov ebp, dword [esp + 0x14]
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x411005
mov edx, dword [eax + 0x18]
cmp edx, ecx
ja 0x410f36
mov eax, dword [eax + 8]
add eax, edx
cmp ecx, eax
jb 0x411005
cmp ebp, 8
jb 0x410f89
mov ecx, dword [edi - 4]
test ecx, ecx
je 0x411005
mov edx, dword [ebx + 0x140]
mov eax, dword [esp + 0x30]
add eax, edx
mov edx, dword [eax + 0x18]
cmp edx, ecx
ja 0x410f6a
mov ebp, dword [eax + 8]
add ebp, edx
cmp ecx, ebp
jb 0x411005
mov ebp, dword [esp + 0x14]
mov ecx, dword [edi - 8]
test ecx, ecx
je 0x411005
mov edx, dword [eax + 0x18]
cmp edx, ecx
ja 0x410f89
mov eax, dword [eax + 8]
add eax, edx
cmp ecx, eax
jb 0x411005
mov ecx, dword [esp + 0x28]
lea eax, [ebp + 0xc]
cmp ecx, eax
jb 0x410fcf
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x411005
mov edx, dword [ebx + 0x140]
lea eax, [edx + esi]
mov edx, dword [eax + 0x18]
cmp edx, ecx
ja 0x410fb8
mov ebp, dword [eax + 8]
add ebp, edx
cmp ecx, ebp
jb 0x411005
mov ebp, dword [esp + 0x14]
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x411005
mov edx, dword [eax + 0x18]
cmp edx, ecx
ja 0x410fcf
mov eax, dword [eax + 8]
add eax, edx
cmp ecx, eax
jb 0x411005
cmp ebp, 8
jb 0x41101b
mov eax, dword [edi - 4]
test eax, eax
je 0x411005
mov ecx, dword [ebx + 0x140]
mov edx, dword [ecx + esi + 0x18]
add ecx, esi
cmp edx, eax
ja 0x410ff4
mov ebp, dword [ecx + 8]
add ebp, edx
cmp eax, ebp
jb 0x411005
mov eax, dword [edi - 8]
test eax, eax
je 0x411005
push eax
call fcn.0040be40
test eax, eax
je 0x41101b
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x130]
push edx
call fcn.0043c100
mov word [eax], 0
mov eax, dword [ebx + 0x140]
mov edi, dword [eax + esi + 0x18]
mov edx, dword [esp + 0x2c]
lea ecx, [eax + esi]
mov eax, dword [ecx + 0xc]
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
sub eax, edi
sub eax, esi
add eax, edx
cmp eax, ecx
jae 0x41107f
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + ecx]
cmp eax, 0x1c
je 0x411051
test eax, eax
jne 0x41107f
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
push edx
push eax
push ecx
call fcn.0040e240
test al, al
je 0x41107f
mov edx, dword [esp + 0x1c]
push edx
mov ecx, dword [esp + 0x134]
call fcn.0043c100
mov word [eax], 0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
add esi, 4
cmp esi, eax
mov dword [esp + 0x14], esi
jb 0x410b50
mov eax, dword [esp + 0x134]
test eax, eax
je 0x4112aa
mov eax, dword [0x47558c]
mov dword [esp + 0x3c], eax
mov byte [esp + 0x128], 0xa
mov eax, dword [esp + 0x28]
xor ebp, ebp
test eax, eax
mov byte [esp + 0x13], 0
mov dword [esp + 0x18], ebp
jbe 0x41128e
lea ecx, [ecx]
mov ecx, dword [ebx + 0x140]
mov edi, dword [esp + 0x30]
mov eax, dword [edi + ecx + 0x44]
test eax, eax
je 0x411111
cmp ebp, eax
jne 0x411111
mov al, byte [esp + 0x13]
test al, al
je 0x411111
lea edx, [esp + 0x3c]
push str.______________data_start_offset_r_n
push edx
call fcn.00438f40
mov ecx, dword [esp + 0x13c]
add esp, 8
lea eax, [esp + 0x3c]
push eax
call fcn.00441b60
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + ebp]
mov eax, dword [esp + 0x40]
mov ecx, dword [ebx + 0x140]
lea esi, [eax + ebp]
mov eax, dword [edi + ecx + 0x18]
mov dword [esp + 0x38], edx
lea edx, [esp + 0x54]
add eax, ebp
push edx
push eax
lea ecx, [esp + 0x84]
call fcn.0043bec0
test eax, eax
je 0x41115b
mov ax, word [esp + 0x54]
test ax, ax
je 0x41115b
movzx eax, ax
lea ebp, [ebp + eax*4 - 4]
jmp 0x41124b
mov eax, dword [ebx + 0xc4]
cmp eax, esi
ja 0x411175
mov ecx, dword [ebx + 0xc8]
add ecx, eax
cmp esi, ecx
jb 0x41124b
mov eax, dword [ebx + 0xbc]
cmp eax, esi
ja 0x41118f
mov edx, dword [ebx + 0xc0]
add edx, eax
cmp esi, edx
jb 0x41124b
movzx edi, word [ebx + 0x4a]
xor edx, edx
test edi, edi
jbe 0x41124b
mov eax, dword [ebx + 0x140]
mov ebp, dword [esp + 0x38]
add eax, 0x18
lea ebx, [ebx]
mov ecx, dword [eax]
cmp ecx, ebp
ja 0x4111c5
mov ebp, dword [eax - 0x10]
add ebp, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x38]
cmp ebp, ecx
jb 0x4111cf
inc edx
add eax, 0x4c
cmp edx, edi
jb 0x4111b0
jmp 0x411247
mov ecx, dword [esp + 0x130]
lea eax, [esp + 0xa4]
push eax
push esi
call fcn.0043be80
test eax, eax
jne 0x411247
mov al, byte [esp + 0x13]
test al, al
jne 0x41121d
mov ecx, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x40]
push str.reloc_correct_begin__d__r_n
push edx
call fcn.00438f40
mov ecx, dword [esp + 0x140]
add esp, 0xc
lea eax, [esp + 0x3c]
push eax
call fcn.00441b60
mov byte [esp + 0x13], 1
mov ecx, dword [ebx + 0x78]
add ecx, esi
push ecx
push esi
lea edx, [esp + 0x44]
push str._08X___08X__r_n
push edx
call fcn.00438f40
mov ecx, dword [esp + 0x144]
add esp, 0x10
lea eax, [esp + 0x3c]
push eax
call fcn.00441b60
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
add ebp, 4
cmp ebp, eax
mov dword [esp + 0x18], ebp
jb 0x4110d0
mov al, byte [esp + 0x13]
test al, al
je 0x41128e
mov ecx, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x40]
push str.reloc_correct_end__d__r_n_r_n
push edx
call fcn.00438f40
mov ecx, dword [esp + 0x140]
add esp, 0xc
lea eax, [esp + 0x3c]
push eax
call fcn.00441b60
movzx ecx, byte [esp + 0x13]
add dword [0x4766ec], ecx
mov byte [esp + 0x128], 9
lea ecx, [esp + 0x3c]
call fcn.00441820
mov eax, dword [esp + 0x24]
movzx edx, word [ebx + 0x4a]
inc eax
cmp eax, edx
mov dword [esp + 0x24], eax
jb 0x410140
mov byte [esp + 0x128], 7
lea ecx, [esp + 0xb0]
call fcn.0043c060
mov byte [esp + 0x128], 5
lea ecx, [esp + 0x104]
call fcn.0043c060
mov byte [esp + 0x128], 3
lea ecx, [esp + 0xe8]
call fcn.0043c060
mov byte [esp + 0x128], 1
lea ecx, [esp + 0xcc]
call fcn.0043c060
mov dword [esp + 0x128], 0xffffffff
lea ecx, [esp + 0x7c]
call fcn.0043c060
mov ecx, dword [esp + 0x120]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x11c
ret 8