Function at 0x43b5d0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xc4
push ebp
mov ebp, dword [esp + 0xcc]
push esi
mov esi, dword [esp + 0xd4]
test esi, esi
push edi
mov edi, dword [ebp]
mov eax, 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edi
je 0x43c2ee
cmp byte [edi + 0x1e], 0
jne 0x43c2ee
cmp dword [ebp + 0x40], 0
jne 0x43c2ee
push 0x2c
lea eax, [esp + 0x6c]
push 0
push eax
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0xe8]
add esp, 0xc
cmp byte [ecx], 4
ja 0x43b649
mov edx, dword [esi + 0x18]
push edx
call fcn.00411780
add esp, 4
and word [esi + 6], 0xfffe
mov dword [esi + 0x18], 0
push ebx
push 0
push esi
push ebp
call fcn.0043b4b0
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 8]
mov ecx, dword [esi]
add esp, 0xc
cmp dword [ebp + 0x40], 0
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], ecx
jne 0x43c2c9
mov edx, edi
cmp byte [edx + 0x1e], 0
jne 0x43c2c9
movzx eax, byte [esi + 6]
shr eax, 2
and eax, 1
mov edi, ebp
mov dword [esp + 0x2c], eax
call fcn.004151a0
test eax, eax
mov dword [esp + 0x10], eax
je 0x43c2c9
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov eax, dword [esp + 0xe0]
push edx
call fcn.0041c6e0
add esp, 4
test eax, eax
jne 0x43c2c9
cmp dword [esi + 0x1c], eax
mov dword [esp + 0x18], eax
jne 0x43b7d0
lea esp, [esp]
mov eax, dword [esp + 0x28]
movsx ecx, word [eax]
cmp dword [esp + 0x18], ecx
jge 0x43b7d0
mov eax, dword [esp + 0x18]
lea edx, [eax*8]
sub edx, eax
mov eax, dword [esp + 0x28]
mov edi, dword [eax + edx*8 + 0x18]
test edi, edi
lea ebx, [eax + edx*8 + 8]
je 0x43b7bd
cmp byte [ebx + 0x14], 0
jne 0x43b7bd
mov eax, esi
call fcn.00411860
add dword [ebp + 0x218], eax
movzx eax, byte [edi + 6]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
shr eax, 2
and eax, 1
push eax
push ecx
push edx
mov dword [esp + 0x48], eax
push ebp
mov eax, esi
call fcn.0041bb40
add esp, 0x10
test eax, eax
je 0x43b75f
cmp dword [esp + 0x3c], 0
je 0x43b755
or word [esi + 6], 4
mov dword [esp + 0x2c], 1
mov dword [esp + 0x18], 0xffffffff
jmp 0x43b788
mov edx, dword [ebx + 0x18]
push 9
lea eax, [esp + 0xc8]
call fcn.00409770
push eax
push edi
push ebp
call fcn.0043b5d0
mov ecx, dword [ebx + 0xc]
mov byte [ebx + 0x14], 1
mov edx, dword [edi + 0x48]
add esp, 0x10
mov dword [ecx + 0x18], edx
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x1e], 0
jne 0x43c2c9
mov eax, esi
call fcn.00411860
sub dword [ebp + 0x218], eax
mov edx, dword [esp + 0xe0]
cmp byte [edx], 4
mov ecx, dword [esi + 8]
mov dword [esp + 0x28], ecx
jbe 0x43b7bd
mov eax, dword [esi + 0x18]
mov dword [esp + 0x1c], eax
add dword [esp + 0x18], 1
cmp dword [esi + 0x1c], 0
mov ebx, dword [esp + 0x1c]
je 0x43b6d0
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi]
mov dword [esp + 0x14], edx
mov dl, byte [esi + 6]
mov dword [esp + 0x34], ecx
mov ecx, dword [esi + 0x14]
and dl, 5
cmp dl, 1
mov dword [esp + 0x30], eax
mov dword [esp + 0x5c], ecx
jne 0x43b813
push 0
push eax
mov eax, dword [esp + 0x28]
push eax
call fcn.00415780
add esp, 0xc
and word [esi + 6], 0xfffe
mov dword [esi + 0x10], eax
mov dword [esp + 0x14], eax
mov edi, dword [esi + 0x10]
push ebx
call fcn.00409cd0
add esp, 4
test eax, eax
jne 0x43b8ca
mov ecx, dword [esp + 0x20]
test byte [ecx + 0xc], 0x20
jne 0x43b8ca
mov dword [esp + 0x1c], eax
or ebx, 0xffffffff
mov ecx, dword [esp + 0xe0]
cmp byte [ecx], 9
jne 0x43b863
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
mov ecx, dword [ecx + 4]
push eax
mov eax, dword [edx]
mov edx, 0x29
call fcn.004196b0
add esp, 4
mov eax, dword [esp + 0x10]
call fcn.00418370
push eax
mov dword [esp + 0x9c], eax
or edi, 0xffffffff
push esi
mov eax, ebp
mov dword [esi + 0x48], edi
mov dword [esi + 0x4c], 0x7fffffff
call fcn.0041c080
add esp, 8
test byte [esi + 6], 1
je 0x43b908
mov edi, dword [ebp + 0x44]
lea eax, [edi + 1]
mov dword [ebp + 0x44], eax
mov ecx, dword [esi]
push ecx
push ebp
mov dword [esp + 0x44], edi
call fcn.0041fbc0
push 0xfffffffffffffff0
push eax
mov edx, edi
mov edi, dword [esp + 0x20]
push 0x29
xor eax, eax
xor ecx, ecx
call fcn.00419680
add esp, 0x14
mov dl, 0x10
mov eax, edi
call fcn.0040a910
jmp 0x43b90c
test ebx, ebx
je 0x43b839
push ebx
push ebp
call fcn.0041fbc0
mov edx, dword [ebp + 0x44]
mov edi, dword [esp + 0x18]
mov dword [ebx + 8], edx
add dword [ebp + 0x44], 1
mov ecx, dword [ebx]
mov edx, dword [ebx + 8]
push 0xfffffffffffffff0
push eax
add ecx, 2
push 0x29
xor eax, eax
call fcn.00419680
mov ebx, eax
add esp, 0x14
mov dword [esi + 0x40], ebx
jmp 0x43b83c
mov dword [esp + 0x3c], edi
xor edi, edi
cmp dword [esp + 0x2c], edi
jne 0x43b9b2
mov edx, dword [esp + 0x14]
cmp edx, edi
jne 0x43b9bc
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
push edi
lea edx, [esp + 0x20]
push edx
push eax
push ecx
push ebp
call fcn.00432c00
mov edi, eax
add esp, 0x14
test edi, edi
je 0x43c2c9
mov eax, dword [edi + 0x2c]
cmp eax, dword [esi + 0x4c]
mov ecx, dword [edi + 0x28]
jg 0x43b95f
jl 0x43b959
cmp ecx, dword [esi + 0x48]
jae 0x43b95f
mov dword [esi + 0x48], ecx
mov dword [esi + 0x4c], eax
test ebx, ebx
jl 0x43b981
cmp dword [esp + 0x1c], 0
jne 0x43b981
mov edx, dword [esp + 0x10]
mov eax, 1
mov ecx, ebx
call fcn.00418180
mov dword [esi + 0x40], 0xffffffff
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 0x10]
mov ebx, dword [esp + 0xe0]
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x34]
push eax
push ebx
push 0xffffffffffffffff
push ecx
push edx
push esi
push ebp
call fcn.0041fc70
push edi
call fcn.00419d80
add esp, 0x24
jmp 0x43c27b
cmp dword [esp + 0x14], edi
je 0x43ba13
mov edx, dword [esp + 0x14]
mov ecx, dword [esi]
mov eax, dword [ecx]
cmp eax, edi
mov ecx, dword [ecx + 0xc]
jle 0x43b9dd
add ecx, 0x10
lea ebx, [ebx]
mov word [ecx], di
sub eax, 1
add ecx, 0x14
cmp eax, edi
jg 0x43b9d0
mov eax, dword [edx]
cmp eax, edi
mov ecx, dword [edx + 0xc]
jle 0x43b9fd
add ecx, 0x10
lea esp, [esp]
mov word [ecx], di
sub eax, 1
add ecx, 0x14
cmp eax, edi
jg 0x43b9f0
cmp dword [esi + 0x4c], edi
jl 0x43ba1d
mov eax, 0x64
jg 0x43ba0e
cmp dword [esi + 0x48], eax
jbe 0x43ba1d
mov dword [esi + 0x48], eax
jmp 0x43ba1a
mov dword [esi + 0x48], 1
mov dword [esi + 0x4c], edi
mov eax, dword [esp + 0x10]
call fcn.00418370
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x14]
cmp eax, edi
lea ecx, [esp + 0x6c]
mov dword [esp + 0xa0], ebp
mov dword [esp + 0xbc], ecx
je 0x43ba9b
mov edx, dword [eax]
add edx, 1
mov dword [esp + 0x78], edx
jmp 0x43ba9f
mov dword [esp + 0x78], edi
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x30]
lea ecx, [esp + 0xa0]
push ecx
mov dword [esp + 0x78], eax
call fcn.0041aba0
mov ebx, dword [esp + 0x20]
lea edx, [esp + 0xa4]
push edx
call fcn.0041aba0
mov ecx, dword [esp + 0x64]
add esp, 8
test ecx, ecx
je 0x43bae0
lea eax, [esp + 0xa0]
call fcn.004193f0
cmp dword [esp + 0x90], 0
mov eax, dword [esp + 0x80]
mov dword [esp + 0x88], eax
mov dword [esp + 0x18], 0
jle 0x43bb36
xor edi, edi
mov ecx, dword [esp + 0x8c]
mov edx, dword [edi + ecx]
mov ebx, dword [edx + 0x10]
lea eax, [esp + 0xa0]
push eax
call fcn.0041aba0
mov eax, dword [esp + 0x1c]
add eax, 1
add esp, 4
add edi, 0x10
cmp eax, dword [esp + 0x90]
mov dword [esp + 0x18], eax
jl 0x43bb02
mov ecx, dword [esp + 0x20]
cmp byte [ecx + 0x1e], 0
jne 0x43c2c9
xor ebx, ebx
cmp dword [esp + 0x14], ebx
je 0x43c052
mov eax, dword [ebp + 0x44]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x70], eax
push edx
add eax, 1
push ebp
mov dword [ebp + 0x44], eax
call fcn.0041fbc0
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0x18]
push 0xfffffffffffffff0
push eax
mov dword [esp + 0xac], eax
push 0x29
xor eax, eax
call fcn.00419680
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0x48]
add eax, 1
lea ebx, [eax + 1]
mov dword [esp + 0x7c], eax
lea eax, [ebx + 1]
mov dword [ebp + 0x48], eax
mov eax, edi
mov dword [esp + 0x6c], ebx
call fcn.00418370
add dword [ebp + 0x48], 1
mov dword [esp + 0x74], eax
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x54], eax
mov eax, edi
call fcn.00418370
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x48]
lea ecx, [eax + 1]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
add eax, edx
mov dword [ebp + 0x48], eax
mov ecx, dword [ecx]
add ecx, eax
lea edx, [eax + 1]
mov dword [ebp + 0x48], ecx
xor ecx, ecx
mov dword [esp + 0x40], edx
push edi
mov eax, ebx
lea edx, [ecx + 7]
call fcn.004196b0
mov eax, dword [esp + 0x80]
xor ecx, ecx
push edi
lea edx, [ecx + 7]
call fcn.004196b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
push edi
mov edx, 2
call fcn.004196b0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x48]
push 0
lea edx, [esp + 0x38]
push edx
push eax
push ecx
push ebp
call fcn.00432c00
add esp, 0x34
test eax, eax
mov dword [esp + 0x50], eax
je 0x43c2c9
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x43bc59
mov edx, dword [esi + 0x10]
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], eax
jmp 0x43bdd2
mov eax, dword [eax]
mov edx, dword [esp + 0x80]
mov dword [esp + 0x48], eax
add eax, 1
test edx, edx
mov dword [esp + 0x34], 1
mov dword [esp + 0x18], eax
mov esi, eax
mov dword [esp + 0x24], eax
jle 0x43bc9c
mov ecx, dword [esp + 0x7c]
add ecx, 0xc
cmp dword [ecx], eax
jl 0x43bc90
add esi, 1
add eax, 1
add ecx, 0x18
sub edx, 1
jne 0x43bc86
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x24]
mov ecx, ebp
call fcn.00409c40
mov edi, eax
mov eax, ebp
call fcn.0040d950
mov eax, dword [esp + 0x14]
push 0
mov ecx, edi
mov ebx, ebp
call fcn.0041abd0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x78]
add eax, edi
mov edx, 0x35
call fcn.004196b0
mov edx, dword [esp + 0x20]
xor esi, esi
add esp, 8
cmp dword [esp + 0x80], esi
mov dword [esp + 0x48], edx
mov dword [esp + 0x18], esi
jle 0x43bd5e
mov eax, edx
lea ebx, [edi + eax]
mov eax, dword [esp + 0x7c]
jmp 0x43bd00
mov ecx, dword [esp + 0x48]
cmp dword [esi + eax + 0xc], ecx
jl 0x43bd47
mov edx, dword [esi + eax + 4]
mov ecx, dword [esi + eax]
mov eax, dword [esi + eax + 8]
push ebx
push edx
push ecx
push ebp
call fcn.00428580
mov ecx, eax
add esp, 0x10
cmp ebx, ecx
je 0x43bd3b
mov edx, dword [esp + 0x10]
push edx
mov eax, ebx
mov edx, 0xf
call fcn.004196b0
add esp, 4
add dword [esp + 0x48], 1
mov eax, dword [esp + 0x7c]
add ebx, 1
mov ecx, dword [esp + 0x18]
add ecx, 1
add esi, 0x18
cmp ecx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
jl 0x43bd00
mov eax, ebp
call fcn.00409cb0
mov ebx, dword [esp + 0x10]
mov esi, eax
mov eax, dword [esp + 0x24]
push esi
push eax
push edi
push 0x1e
mov eax, ebx
call fcn.004183d0
mov ecx, dword [esp + 0x80]
push ebx
mov eax, esi
mov edx, 0x46
call fcn.004196b0
mov edx, ebp
call fcn.00409c70
mov esi, dword [esp + 0x38]
mov ecx, edi
mov eax, ebp
call fcn.0040fe70
mov ecx, dword [esp + 0x64]
push ecx
call fcn.00419d80
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x88]
push ebx
mov edx, 0x40
call fcn.004196b0
add esp, 0x1c
mov eax, ebp
mov byte [esp + 0x6d], 1
call fcn.0040d950
mov eax, dword [esp + 0x10]
call fcn.0040a960
mov dword [esp + 0x24], eax
mov eax, ebp
call fcn.0040d950
mov edx, dword [esp + 0x14]
xor edi, edi
cmp dword [edx], edi
jle 0x43be3e
xor ebx, ebx
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x2c]
je 0x43be17
mov edx, dword [esp + 0x70]
lea ecx, [edi + eax]
mov eax, dword [esp + 0x10]
push ecx
push edi
push edx
push 0x1c
call fcn.004183d0
add esp, 0x10
jmp 0x43be30
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x6c], 1
mov edx, dword [ecx + 0xc]
mov ecx, dword [edx + ebx]
lea esi, [edi + eax]
mov eax, ebp
call fcn.0041ac30
mov eax, dword [esp + 0x14]
add edi, 1
add ebx, 0x14
cmp edi, dword [eax]
jl 0x43bdf2
mov ecx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x64]
mov eax, dword [ebx]
mov edi, dword [esp + 0x10]
push 0xfffffffffffffffa
push ecx
mov ecx, dword [esp + 0x34]
push 0x18
mov edx, esi
call fcn.00419680
mov eax, edi
call fcn.0040a960
mov dword [esp + 0x70], eax
add eax, 1
push eax
push 0
push eax
push 0x19
mov eax, edi
call fcn.004183d0
mov edx, dword [ebx]
mov ebx, esi
mov esi, dword [esp + 0x48]
push edx
mov edi, ebp
call fcn.00419420
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x80]
push esi
add ecx, 1
mov edx, 2
call fcn.004196b0
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x7c]
push esi
mov edx, 0x71
call fcn.004196b0
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
push esi
mov edx, 2
call fcn.004196b0
mov eax, dword [esp + 0x90]
mov ecx, esi
call fcn.0040ddd0
lea eax, [esp + 0x98]
push eax
mov eax, ebp
call fcn.0041f780
mov eax, dword [esp + 0x98]
mov ecx, 1
push esi
lea edx, [ecx + 6]
call fcn.004196b0
add esp, 0x34
cmp dword [esp + 0x34], 0
je 0x43bf25
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x70]
push esi
mov edx, 0x43
call fcn.004196b0
add esp, 4
jmp 0x43bf48
mov ecx, dword [esp + 0x50]
push ecx
call fcn.00419d80
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x14]
add esp, 4
mov eax, 1
call fcn.00418180
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x60]
lea ebx, [edi + 1]
push esi
mov ecx, ebx
mov edx, 2
call fcn.004196b0
mov eax, dword [esp + 0x50]
xor ecx, ecx
push esi
lea edx, [ecx + 1]
call fcn.004196b0
mov eax, esi
call fcn.0040a960
mov ecx, 1
mov dword [esp + 0x5c], eax
push esi
mov eax, edi
lea edx, [ecx + 6]
call fcn.004196b0
push esi
mov eax, ebx
mov ecx, 3
call fcn.004196d0
mov edx, dword [esp + 0x70]
mov ecx, esi
call fcn.0040a980
mov eax, esi
call fcn.0040a960
mov ecx, dword [esp + 0x78]
mov edi, eax
lea eax, [edi + 2]
push esi
mov edx, 0x71
call fcn.004196b0
push esi
mov eax, ebx
mov ecx, 3
call fcn.004196d0
lea edx, [esp + 0x84]
push edx
mov eax, ebp
call fcn.0041a120
mov eax, dword [esp + 0x78]
push 8
add edi, 1
push edi
push eax
push ebp
call fcn.00430640
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x10c]
mov eax, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x4c]
push edi
push edx
push eax
mov eax, dword [esp + 0x118]
mov edx, dword [eax]
push ecx
push edx
push eax
push ebp
call fcn.0041fc70
add esp, 0x4c
push esi
mov eax, ebx
mov ecx, 3
call fcn.004196d0
mov edx, dword [esp + 0x48]
mov ecx, esi
call fcn.0040a980
push ebp
lea ebx, [esp + 0x74]
call fcn.00422390
mov eax, dword [esp + 0x48]
push esi
mov ecx, 3
call fcn.004196d0
add esp, 0xc
jmp 0x43c262
lea edx, [esp + 0x6c]
mov eax, esi
mov dword [esp + 0x44], ebx
call fcn.00409640
mov edi, eax
cmp edi, ebx
je 0x43c134
mov esi, dword [edi + 0x40]
mov ecx, dword [ebp]
call fcn.00409790
mov esi, eax
mov eax, dword [ebp + 0x44]
mov dword [esp + 0x54], eax
add eax, 1
mov dword [ebp + 0x44], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x50], eax
xor ebx, ebx
mov eax, ebp
mov dword [esp + 0x3c], ebx
call fcn.0042f0d0
mov eax, dword [edi + 0x10]
test eax, eax
je 0x43c0d6
test ebx, ebx
je 0x43c0ac
mov ecx, dword [eax + 4]
cmp ecx, dword [ebx + 4]
jge 0x43c0ae
mov ebx, eax
mov eax, dword [eax + 0x20]
test eax, eax
jne 0x43c0a0
test ebx, ebx
je 0x43c0d6
mov edx, dword [ebx + 4]
cmp edx, dword [edi + 8]
jge 0x43c0d6
mov eax, dword [ebx + 0x14]
push ebx
push ebp
mov dword [esp + 0x58], eax
call fcn.00420300
add esp, 8
mov edi, eax
jmp 0x43c0da
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
push esi
mov esi, dword [esp + 0x14]
push ecx
push ebx
push 0x26
mov eax, esi
call fcn.004183d0
add esp, 0x10
test edi, edi
je 0x43c10b
push edi
push esi
mov ecx, 0xfffffff0
or eax, 0xffffffff
call fcn.00418030
add esp, 8
mov edx, dword [esp + 0x8c]
mov eax, dword [edx + 8]
push esi
mov ecx, ebx
mov edx, 0x1f
call fcn.004196b0
push esi
mov eax, ebx
mov ecx, 0x2b
call fcn.004196d0
jmp 0x43c211
mov eax, esi
mov dword [esp + 0x40], ebx
call fcn.0040cfa0
mov bl, al
test bl, bl
mov byte [esp + 0x3b], bl
je 0x43c189
mov eax, dword [esi]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov esi, dword [esp + 0x20]
push 0
push eax
push esi
call fcn.00415780
add esp, 0xc
test eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
je 0x43c189
cmp byte [esi + 0x1e], 0
jne 0x43c189
mov edx, dword [eax + 0xc]
cmp bl, 1
setne cl
mov byte [edx + 0xc], cl
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
mov byte [ecx], 0x98
push ebp
lea ebx, [esp + 0x70]
call fcn.00422390
mov bl, byte [esp + 0x3f]
mov ecx, dword [esp + 0x38]
movzx dx, bl
lea eax, [esp + 0x44]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
push ebp
call fcn.00432c00
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x43c1d0
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x20]
push eax
call fcn.00411780
add esp, 4
jmp 0x43c2c9
lea ecx, [esp + 0x6c]
push ecx
mov eax, ebp
call fcn.0041f780
add esp, 4
cmp dword [esp + 0x40], 0
jne 0x43c1ff
test bl, bl
je 0x43c1ff
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x14]
xor ecx, ecx
push edx
lea edx, [ecx + 1]
call fcn.004196b0
add esp, 4
push esi
call fcn.00419d80
lea eax, [esp + 0x70]
push eax
mov eax, ebp
call fcn.0041a120
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x64]
add esp, 8
push 8
push esi
push ecx
push ebp
mov dword [esp + 0x2c], 0
call fcn.00430640
mov edx, dword [esp + 0xf0]
mov eax, dword [esp + 0xec]
mov ecx, dword [eax]
push esi
push esi
push edx
push 0xffffffffffffffff
push 0
push ecx
push eax
push ebp
call fcn.0041fc70
mov edx, dword [esp + 0x74]
mov edi, dword [esp + 0x50]
push edx
call fcn.00411780
mov esi, dword [esp + 0x44]
add esp, 0x34
mov edx, dword [esp + 0x4c]
mov ecx, esi
call fcn.0040a980
mov esi, dword [esp + 0xdc]
mov ebx, dword [esp + 0xe0]
cmp dword [esp + 0x1c], 0
je 0x43c299
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
mov edx, dword [esp + 0x10]
push ebx
push ecx
push edx
push esi
push ebp
call fcn.0041c440
add esp, 0x14
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x10]
call fcn.0040a980
cmp byte [ebx], 5
mov dword [esp + 0x24], 0
jne 0x43c2c9
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
push eax
push ecx
push ebp
call fcn.0041fa20
add esp, 0xc
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x20]
push edx
push esi
call fcn.00411130
mov eax, dword [esp + 0x94]
push eax
push esi
call fcn.00411130
mov eax, dword [esp + 0x34]
add esp, 0x10
pop ebx
pop edi
pop esi
pop ebp
add esp, 0xc4
ret