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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2d0
mov esi, esp
push eax
mov dword [esi + 0x34], esp
sub esp, 0x30
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x20], eax
mov esp, eax
push eax
mov dword [esi + 0x110], esp
push eax
mov dword [esi + 0x118], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xf4], eax
mov esp, eax
push eax
mov dword [esi + 0x114], esp
sub esp, 0x40
mov ebx, esp
push eax
mov dword [esi + 0xf8], esp
push eax
mov dword [esi + 0xfc], esp
push eax
mov dword [esi + 0x24], esp
push eax
mov dword [esi + 0x11c], esp
sub esp, 0x80
mov dword [esi + 0x38], esp
mov eax, dword [0x4486f4]
mov cl, byte [esi + 0x44]
mov byte [esi + 0x48], cl
mov byte [esi + 0xd0], 0xf
mov byte [esi + 0xd1], 0x81
mov byte [esi + 0xd2], 0x3b
mov byte [esi + 0xd3], 0x83
mov byte [esi + 0xd4], 0x34
mov byte [esi + 0xd5], 0x9d
mov byte [esi + 0xd6], 0x24
mov byte [esi + 0xd7], 0x9f
mov byte [esi + 0xd8], 0x12
mov byte [esi + 0xd9], 0x99
mov byte [esi + 0xda], 0x14
mov byte [esi + 0xdb], 0x9b
mov byte [esi + 0xdc], 0x2a
mov byte [esi + 0xdd], 0x95
mov byte [esi + 0xde], 0x62
mov byte [esi + 0xdf], 0x97
mov byte [esi + 0xe0], 0x2a
mov byte [esi + 0xe1], 0x91
mov byte [esi + 0xe2], 0x24
mov byte [esi + 0xe3], 0x93
mov byte [esi + 0xe4], 0x26
mov byte [esi + 0xe5], 0x6d
mov byte [esi + 0xe6], 0x6c
mov byte [esi + 0xe7], 0x6f
mov byte [esi + 0xea], 0
mov word [esi + 0xe8], 0
mov dword [esi + 0xc], 0
mov ecx, dword [esi + 0xc]
cmp ecx, 0x1b
jae 0x40a7df
jmp 0x40a792
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0xc]
movzx edx, byte [esi + edx + 0xd0]
mov edi, ecx
add edi, 0xadb84d6b
lea ecx, [ecx + edx - 0x5247b295]
and edi, edx
add edi, edi
sub ecx, edi
mov dword [esi + 0x130], ecx
mov ecx, dword [esi + 0x130]
add cl, 0x13
mov edx, dword [esi + 0xc]
mov byte [esi + edx + 0xd0], cl
mov ecx, dword [esi + 0xc]
inc ecx
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
cmp ecx, 0x1b
jb 0x40a792
jmp 0x40a7df
lea ecx, [esi + 0xd0]
xor edx, edx
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0x800
call eax
mov dword [esi + 0x12c], eax
mov eax, dword [esi + 0x12c]
lea ecx, [0x4486bc]
sub esp, 4
mov dword [esp], eax
call fcn.0043a2f0
test al, 1
jne 0x40a834
jmp 0x40a822
mov byte [esi + 3], 0
mov dword [esi + 4], 1
jmp 0x40a82f
jmp 0x40b2c3
mov eax, dword [0x4486bc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0xcd5bd590
call fcn.0043c6f0
add esp, 8
mov dword [0x4486c4], eax
mov eax, dword [0x4486bc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x3098095e
call fcn.0043c6f0
add esp, 8
mov dword [0x4486c8], eax
mov eax, dword [0x4486bc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x4133be71
call fcn.0043c6f0
add esp, 8
mov dword [0x4486cc], eax
mov eax, dword [0x4486bc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x1c8a781f
call fcn.0043c6f0
add esp, 8
mov dword [0x4486d0], eax
mov eax, dword [0x4486bc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x71c23cd8
call fcn.0043c6f0
add esp, 8
mov dword [0x4486d4], eax
mov eax, dword [0x4486bc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x1c121576
call fcn.0043c6f0
add esp, 8
mov dword [0x4486d8], eax
mov eax, dword [0x4486bc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x21bbc64b
call fcn.0043c6f0
add esp, 8
mov dword [0x4486dc], eax
mov eax, dword [0x4486bc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x8d2eb73e
call fcn.0043c6f0
add esp, 8
mov dword [0x4486e0], eax
mov eax, dword [0x4486bc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0xde1934d7
call fcn.0043c6f0
add esp, 8
mov dword [0x4486e4], eax
mov eax, dword [0x4486bc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0xa2add3c4
call fcn.0043c6f0
add esp, 8
mov dword [0x4486e8], eax
mov eax, dword [0x4486bc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x1f4c40ff
call fcn.0043c6f0
add esp, 8
jmp 0x40a991
mov dword [0x4486ec], eax
mov eax, dword [0x4486bc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0xfe8974d2
call fcn.0043c6f0
add esp, 8
mov dword [0x4486f0], eax
lea eax, [0x4405f4]
mov dword [esi + 0x144], eax
lea eax, [0x4405f4]
mov dword [esi + 0x28], eax
lea eax, [0x4405f4]
add eax, 0x24
mov dword [esi + 0x128], eax
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x128]
cmp eax, ecx
setne al
jmp 0x40a9ea
test al, 1
jne 0x40a9fc
jmp 0x40a9f0
mov dword [esi + 4], 2
jmp 0x40ab55
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov dword [esi + 0x124], eax
jmp 0x40aa09
lea eax, [esi + 0x248]
mov ecx, dword [esi + 0x124]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435d50
add esp, 8
mov dword [esi + 0x1c], ebx
jmp 0x40aa2c
lea ebx, [esi + 0x248]
lea eax, [esi + 0x148]
jmp 0x40aa3a
mov dword [esi + 0x30], eax
add eax, 0x100
mov dword [esi + 0x2c], eax
mov ecx, ebx
mov eax, ecx
mov dl, byte [eax]
add ecx, 1
cmp dl, 0
jne 0x40aa47
sub eax, ebx
mov edi, ebx
add edi, eax
mov dword [esi + 0x100], 0
mov eax, dword [esi + 0x2c]
add eax, 0xfffffffe
cmp edi, ebx
ja 0x40aa78
mov ebx, dword [esi + 0x1c]
lea eax, [esi + 0x148]
jmp 0x40aad3
mov dword [esi + 0x2c], eax
jmp 0x40aa7d
cmp byte [ebx], 0
jne 0x40aa87
mov eax, dword [esi + 0x30]
jmp 0x40aad0
sub esp, 0xc
lea eax, [esi + 0x100]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.0040f370
add esp, 0xc
add ebx, eax
mov cx, word [esi + 0x100]
mov edx, dword [esi + 0x30]
mov eax, edx
add eax, 2
mov word [edx], cx
mov ecx, eax
sub ecx, dword [esi + 0x2c]
setb cl
mov edx, ebx
sub edx, edi
setb dl
and cl, dl
test cl, 1
mov dword [esi + 0x30], eax
jne 0x40aa7d
mov ebx, dword [esi + 0x1c]
mov word [eax], 0
lea eax, [esi + 0x148]
sub esp, 4
mov dword [esp], eax
call fcn.0040b2e0
add esp, 4
jmp 0x40aaee
test al, 1
jne 0x40aaf4
jmp 0x40ab21
lea eax, [esi + 0x148]
lea ecx, [0x4486f8]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040bdd0
add esp, 8
jmp 0x40ab14
mov byte [esi + 3], 1
mov dword [esi + 4], 1
jmp 0x40ab28
mov dword [esi + 4], 0
jmp 0x40ab2a
cmp dword [esi + 4], 0
jne 0x40ab39
mov dword [esi + 4], 0
jmp 0x40ab39
mov eax, dword [esi + 4]
jmp 0x40ab3e
cmp eax, 0
jne 0x40ab53
jmp 0x40ab45
mov eax, dword [esi + 0x28]
add eax, 4
mov dword [esi + 0x28], eax
jmp 0x40a9da
jmp 0x40ab55
mov eax, dword [esi + 4]
jmp 0x40ab5a
cmp eax, 2
jne 0x40b2c3
sub esp, 4
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_GetProcessVersion]
call eax
mov dword [esi + 0x140], eax
mov dword [esi + 0x40], 0
mov dword [esi + 0x120], 0
mov al, byte [esi + 0x3c]
mov byte [esi + 0x4c], al
mov byte [esi + 0x58], 0xe
mov byte [esi + 0x59], 0x95
mov byte [esi + 0x5a], 0
mov byte [esi + 0x5b], 0x8b
mov byte [esi + 0x5c], 0x1e
mov byte [esi + 0x5d], 0x89
mov byte [esi + 0x5e], 0x18
mov byte [esi + 0x5f], 0x8f
mov byte [esi + 0x60], 0x1b
mov byte [esi + 0x61], 0x8d
mov byte [esi + 0x62], 0x42
mov byte [esi + 0x63], 0x83
mov byte [esi + 0x64], 0x53
mov byte [esi + 0x65], 0x81
mov byte [esi + 0x66], 0x51
mov byte [esi + 0x67], 0x87
mov byte [esi + 0x68], 0x13
mov byte [esi + 0x69], 0x85
mov byte [esi + 0x6a], 0x10
mov byte [esi + 0x6b], 0x7b
mov byte [esi + 0x6c], 0xe1
mov byte [esi + 0x6d], 0x79
mov byte [esi + 0x6e], 0xdf
mov byte [esi + 0x6f], 0x7f
mov byte [esi + 0x70], 0xed
mov byte [esi + 0x71], 0x7d
mov byte [esi + 0x72], 0xd9
mov byte [esi + 0x73], 0x73
mov byte [esi + 0x74], 0xe3
mov byte [esi + 0x75], 0x71
mov byte [esi + 0x76], 0xe3
mov byte [esi + 0x77], 0x77
mov byte [esi + 0x78], 0xe5
mov byte [esi + 0x79], 0x75
mov byte [esi + 0x7a], 0xff
mov byte [esi + 0x7b], 0x6b
mov byte [esi + 0x7c], 0xf8
mov byte [esi + 0x7d], 0x69
mov byte [esi + 0x7e], 0xf7
mov byte [esi + 0x7f], 0x6f
mov byte [esi + 0x80], 0xfa
mov byte [esi + 0x81], 0x6d
mov byte [esi + 0x82], 0xe3
mov byte [esi + 0x83], 0x63
mov byte [esi + 0x84], 0xb0
mov byte [esi + 0x85], 0x61
mov byte [esi + 0x86], 0xc5
mov byte [esi + 0x87], 0x67
mov byte [esi + 0x88], 0xf7
mov byte [esi + 0x89], 0x65
mov byte [esi + 0x8a], 0xf7
mov byte [esi + 0x8b], 0x5b
mov byte [esi + 0x8c], 0x8b
mov byte [esi + 0x8d], 0x59
mov byte [esi + 0x8e], 0xc8
mov byte [esi + 0x8f], 0x5f
mov byte [esi + 0x90], 0xc8
mov byte [esi + 0x91], 0x5d
mov byte [esi + 0x92], 0xcd
mov byte [esi + 0x93], 0x53
mov byte [esi + 0x94], 0xc8
mov byte [esi + 0x95], 0x51
mov byte [esi + 0x96], 0xcf
mov byte [esi + 0x97], 0x57
mov byte [esi + 0x98], 0xca
mov byte [esi + 0x99], 0x55
mov byte [esi + 0x9a], 0xcf
mov byte [esi + 0x9b], 0x4b
mov byte [esi + 0x9c], 0xdf
mov byte [esi + 0x9d], 0x49
mov byte [esi + 0x9e], 0x99
mov byte [esi + 0x9f], 0x4f
mov byte [esi + 0xa0], 0x87
mov byte [esi + 0xa1], 0x4d
mov byte [esi + 0xa2], 0x86
mov byte [esi + 0xa3], 0x43
mov byte [esi + 0xa4], 0x89
mov byte [esi + 0xa5], 0x41
mov byte [esi + 0xa6], 0x8a
mov byte [esi + 0xa7], 0x47
mov byte [esi + 0xa8], 0x91
mov byte [esi + 0xa9], 0x45
mov byte [esi + 0xaa], 0x93
mov byte [esi + 0xab], 0x3b
mov byte [esi + 0xac], 0xf5
mov byte [esi + 0xad], 0x39
mov byte [esi + 0xae], 0xf7
mov byte [esi + 0xaf], 0x3f
mov byte [esi + 0xb0], 0xf7
mov byte [esi + 0xb1], 0x3d
mov byte [esi + 0xb2], 0xea
mov byte [esi + 0xb3], 0x33
mov byte [esi + 0xb4], 0xe6
mov byte [esi + 0xb5], 0x31
mov byte [esi + 0xb6], 0xe5
mov byte [esi + 0xb7], 0x37
mov byte [esi + 0xb8], 0xe3
mov byte [esi + 0xb9], 0x35
mov byte [esi + 0xba], 0xe3
mov byte [esi + 0xbb], 0x2b
mov byte [esi + 0xbc], 0xe5
mov byte [esi + 0xbd], 0x29
mov byte [esi + 0xbe], 0xf8
mov byte [esi + 0xbf], 0x2f
mov byte [esi + 0xc0], 0xfe
mov byte [esi + 0xc1], 0x2d
mov byte [esi + 0xc2], 0x2c
mov byte [esi + 0xc3], 0x23
mov dword [esi + 0xc8], 0
mov dword [esi + 0xc4], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0x74
jae 0x40ae76
jmp 0x40ae32
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx edx, byte [esi + ecx + 0x58]
mov ecx, eax
add ecx, edx
add eax, 0x6d
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0xc794fe6d
mov dword [esi + 0x134], ecx
mov eax, dword [esi + 0x134]
add al, 5
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x58], al
mov eax, dword [esi + 0x10]
inc eax
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
cmp eax, 0x74
jb 0x40ae32
jmp 0x40ae76
lea eax, [esi + 0x58]
lea ecx, [esi + 0x40]
lea edx, [esi + 0x120]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0040be10
add esp, 0xc
mov ecx, dword [esi + 0x20]
jmp 0x40ae9d
jmp 0x40ae9f
jmp 0x40aea1
test al, 1
jne 0x40aeaa
jmp 0x40b2b6
mov byte [esi + 0xb], 0
mov eax, dword [esi + 0x110]
mov al, byte [eax]
mov byte [esi + 0x50], al
mov byte [ecx], 0x72
mov byte [ecx + 1], 0x38
mov byte [ecx + 2], 0x24
mov byte [ecx + 3], 0x2c
mov byte [ecx + 4], 0x20
mov byte [ecx + 5], 0x91
mov byte [ecx + 6], 0x2d
mov byte [ecx + 7], 0x3b
mov byte [ecx + 8], 0x31
mov byte [ecx + 9], 0x20
mov byte [ecx + 0xa], 0x21
mov byte [ecx + 0xb], 0x68
mov byte [ecx + 0xc], 0x74
mov byte [ecx + 0xd], 0x36
mov byte [ecx + 0xe], 0x35
mov byte [ecx + 0xf], 0x2b
mov byte [ecx + 0x10], 0x2d
mov byte [ecx + 0x11], 0x3a
mov byte [ecx + 0x12], 0x30
mov byte [ecx + 0x13], 0x42
mov byte [ecx + 0x14], 0x32
mov byte [ecx + 0x15], 0x3a
mov byte [ecx + 0x16], 0x2e
mov byte [ecx + 0x17], 0xd2
mov byte [ecx + 0x18], 0xcf
mov byte [ecx + 0x19], 0xcf
mov byte [ecx + 0x1a], 0xc3
mov byte [ecx + 0x1b], 0xba
mov byte [ecx + 0x1c], 0xc8
mov byte [ecx + 0x1d], 0xc6
mov byte [ecx + 0x1e], 0xcb
mov byte [ecx + 0x1f], 0xcc
mov byte [ecx + 0x20], 0x88
mov byte [ecx + 0x21], 0x97
mov byte [ecx + 0x22], 0x54
mov eax, ecx
add eax, 0x23
xor ecx, ecx
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xb
call fcn.00408f30
add esp, 0xc
mov dword [esi + 0x14], 0
mov eax, dword [esi + 0x14]
cmp eax, 0x2e
mov edx, dword [esi + 0x20]
jae 0x40afd3
jmp 0x40af7d
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x20]
movzx edx, byte [edx + ecx]
mov ecx, eax
add ecx, 0x536e3ce9
lea eax, [eax + edx + 0x536e3ce9]
and ecx, edx
add ecx, ecx
mov edx, eax
not edx
mov edi, ecx
and edi, edx
mov edx, dword [esi + 0x20]
not ecx
and eax, ecx
sub eax, edi
mov dword [esi + 0x138], eax
mov eax, dword [esi + 0x138]
add al, 0xa1
mov ecx, dword [esi + 0x14]
mov byte [edx + ecx], al
mov eax, dword [esi + 0x14]
inc eax
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x14]
cmp eax, 0x2e
jb 0x40af7d
jmp 0x40afd3
mov eax, dword [esi + 0x40]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040c5f0
add esp, 8
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0xf4]
jmp 0x40aff3
jmp 0x40aff5
mov dword [ecx], eax
mov eax, dword [ecx]
cmp eax, 0
setne al
test al, 1
jne 0x40b008
jmp 0x40b27a
mov eax, dword [esi + 0x114]
mov al, byte [eax]
mov byte [esi + 0x54], al
mov byte [edx], 0x1c
mov byte [edx + 1], 0x2e
mov byte [edx + 2], 0xe9
mov byte [edx + 3], 0xeb
mov byte [edx + 4], 0xf5
mov byte [edx + 5], 0xe3
mov byte [edx + 6], 0x10
mov byte [edx + 7], 0x57
mov byte [edx + 0xa], 0
mov word [edx + 8], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x18]
cmp eax, 0xb
jae 0x40b096
jmp 0x40b04d
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
movzx ecx, byte [edx + ecx]
mov edx, eax
add edx, 0x3800a074
add eax, 0x74
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x13c], edx
mov edx, dword [esi + 0xf4]
mov eax, dword [esi + 0x13c]
add al, 0xd4
mov ecx, dword [esi + 0x18]
mov byte [edx + ecx], al
mov eax, dword [esi + 0x18]
inc eax
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp eax, 0xb
jb 0x40b04d
mov ecx, dword [esi + 0x34]
jmp 0x40b096
mov eax, dword [ecx]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040c5f0
add esp, 8
mov ecx, dword [esi + 0x118]
mov dword [ecx], eax
mov eax, ecx
cmp dword [eax], 0
je 0x40b27a
mov eax, dword [eax]
mov byte [eax], 0
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
add eax, 0x22
mov ecx, dword [esi + 0xf8]
mov dword [ecx], eax
mov eax, dword [ecx]
sub esp, 4
mov dword [esp], eax
call fcn.00408fc0
add esp, 4
mov edx, dword [esi + 0xfc]
mov dword [edx], eax
mov ecx, dword [esi + 0x24]
mov dword [ecx], 0
jmp 0x40b0f5
mov eax, dword [ecx]
mov ecx, dword [edx]
cmp eax, ecx
setb al
mov ecx, dword [esi + 0x24]
jmp 0x40b103
test al, 1
jne 0x40b117
jmp 0x40b109
mov dword [esi + 4], 4
jmp 0x40b112
jmp 0x40b199
mov eax, dword [esi + 0xf8]
mov eax, dword [eax]
mov ecx, dword [ecx]
add eax, ecx
mov edx, dword [esi + 0x11c]
mov al, byte [eax]
mov ecx, dword [esi + 0x24]
mov byte [edx], al
jmp 0x40b132
mov al, byte [edx]
jmp 0x40b136
movsx eax, al
cmp eax, 0x61
setge al
test al, 1
jne 0x40b145
jmp 0x40b17c
movsx eax, byte [edx]
cmp eax, 0x7a
jg 0x40b17c
movsx ecx, byte [edx]
add ecx, 0xffffff9f
sub ecx, 0x47d9a189
sub ecx, 0xb
add ecx, 0x47d9a189
mov eax, ecx
and eax, 0x1a
or ecx, 0x1a
add eax, ecx
mov ecx, 0x1a
cdq
idiv ecx
sub edx, 0xffffff9f
mov ecx, dword [esi + 0x24]
jmp 0x40b180
mov dl, byte [edx]
jmp 0x40b180
mov eax, dword [ecx]
mov byte [ebx + eax], dl
mov eax, dword [ecx]
mov edx, dword [esi + 0xfc]
sub eax, 0xffffffff
mov dword [ecx], eax
jmp 0x40b194
jmp 0x40b0f5
mov eax, dword [edx]
mov byte [ebx + eax], 0
mov edi, dword [esi + 0x38]
add edi, 0x80
mov ecx, ebx
mov eax, ecx
mov dl, byte [eax]
add ecx, 1
cmp dl, 0
jne 0x40b1aa
sub eax, ebx
mov ecx, ebx
mov ebx, ecx
add ebx, eax
mov dword [esi + 0x104], 0
add edi, 0xfffffffe
mov dword [esi + 0x10c], edi
mov dword [esi + 0x1c], ecx
cmp ebx, ecx
mov edi, dword [esi + 0x38]
mov eax, edi
jbe 0x40b245
mov ecx, edi
jmp 0x40b1e1
mov edi, dword [esi + 0x1c]
cmp byte [edi], 0
jne 0x40b1ed
mov eax, ecx
jmp 0x40b242
sub esp, 0xc
lea eax, [esi + 0x104]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esi + 0x108], ecx
call fcn.0040f370
add esp, 0xc
add edi, eax
mov cx, word [esi + 0x104]
mov edx, dword [esi + 0x108]
mov eax, edx
add eax, 2
mov word [edx], cx
mov ecx, eax
sub ecx, dword [esi + 0x10c]
setb cl
mov dword [esi + 0x1c], edi
sub edi, ebx
setb dl
and cl, dl
test cl, 1
mov ecx, eax
jne 0x40b1e1
mov edi, dword [esi + 0x38]
mov word [eax], 0
sub esp, 4
mov dword [esp], edi
call fcn.0040b2e0
add esp, 4
test al, 1
jne 0x40b25e
jmp 0x40b27a
lea eax, [0x4486f8]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0040bdd0
add esp, 8
mov byte [esi + 0xb], 1
mov eax, dword [esi + 0x40]
sub esp, 4
mov dword [esp], eax
call fcn.00438ea0
add esp, 4
mov al, byte [esi + 0xb]
jmp 0x40b290
jmp 0x40b292
jmp 0x40b294
jmp 0x40b296
test al, 1
je 0x40b2a7
mov byte [esi + 3], 1
mov dword [esi + 4], 1
jmp 0x40b2ae
mov dword [esi + 4], 0
cmp dword [esi + 4], 0
jne 0x40b2c1
jmp 0x40b2b6
mov byte [esi + 3], 0
mov dword [esi + 4], 1
jmp 0x40b2c3
mov al, byte [esi + 3]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret