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

Disassembly:
push 0xffffffffffffffff
push 0x443bde
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x250
push ebx
push ebp
push esi
push edi
push 0xe
mov edi, ecx
xor esi, esi
push str...............
lea ecx, [esp + 0xa8]
mov dword [esp + 0x44], esi
mov dword [esp + 0xbc], 0xf
mov dword [esp + 0xb8], esi
mov byte [esp + 0xa8], 0
call fcn.00403890
mov dword [esp + 0x268], esi
push 5
push str.arg_u
lea ecx, [esp + 0x84]
mov dword [esp + 0x98], 0xf
mov dword [esp + 0x94], esi
mov byte [esp + 0x84], 0
call fcn.00403890
mov byte [esp + 0x268], 1
push 6
push str.LVar_u
lea ecx, [esp + 0xc0]
mov dword [esp + 0xd4], 0xf
mov dword [esp + 0xd0], esi
mov byte [esp + 0xc0], 0
call fcn.00403890
mov edx, str.____Storing_declarations
mov ecx, 0x45ceb0
mov byte [esp + 0x268], 2
call fcn.00404710
push eax
call fcn.00401870
add esp, 4
mov dword [esp + 0x2c], 0xf
mov dword [esp + 0x28], esi
mov byte [esp + 0x18], 0
mov byte [esp + 0x268], 3
mov ecx, dword [edi + 0xdc]
sub ecx, dword [edi + 0xd8]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
xor ebx, ebx
shr eax, 0x1f
mov dword [esp + 0x40], ebx
add eax, edx
je 0x40cbf6
push ebx
sub esp, 0x18
mov ecx, esp
push 0x15
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push str.________Procedure:__d
mov byte [ecx], 0
call fcn.00403890
lea eax, [esp + 0x68]
push eax
call fcn.0042baa0
mov edx, eax
mov ecx, 0x45ceb0
mov byte [esp + 0x288], 4
call fcn.0040a3e0
push eax
call fcn.00401870
add esp, 0x24
mov byte [esp + 0x268], 3
cmp dword [esp + 0x60], 0x10
jb 0x40b816
push dword [esp + 0x4c]
call fcn.0042d556
add esp, 4
test ebx, ebx
jne 0x40b8fd
mov eax, dword [edi + 0xe8]
sub eax, dword [edi + 0xe4]
sar eax, 2
test eax, eax
je 0x40ca56
mov eax, dword [edi + 0xd8]
lea ecx, [edi + 0xf4]
push dword [eax + 4]
lea eax, [esp + 0x50]
push eax
call fcn.00412580
or esi, 1
cmp dword [esp + 0xb4], 0x10
mov dword [esp + 0x3c], esi
mov ecx, eax
lea esi, [esp + 0xa0]
cmovae esi, dword [esp + 0xa0]
cmp dword [ecx + 0x14], 0x10
mov ebp, dword [ecx + 0x10]
jb 0x40b879
mov ecx, dword [ecx]
mov ebx, dword [esp + 0xb0]
cmp ebp, ebx
mov edx, ebx
cmovb edx, ebp
test edx, edx
je 0x40b8e0
sub edx, 4
jb 0x40b8a1
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x40b8a6
add ecx, 4
add esi, 4
sub edx, 4
jae 0x40b890
cmp edx, 0xfffffffc
je 0x40b8da
mov al, byte [ecx]
cmp al, byte [esi]
jne 0x40b8d3
cmp edx, 0xfffffffd
je 0x40b8da
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x40b8d3
cmp edx, 0xfffffffe
je 0x40b8da
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x40b8d3
cmp edx, 0xffffffff
je 0x40b8da
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
je 0x40b8da
sbb eax, eax
or eax, 1
jmp 0x40b8dc
xor eax, eax
test eax, eax
jne 0x40b8f2
cmp ebp, ebx
jae 0x40b8e9
or eax, 0xffffffff
jmp 0x40b8f0
xor eax, eax
cmp ebp, ebx
setne al
test eax, eax
sete al
test al, al
je 0x40b8fd
mov bl, 1
jmp 0x40b8ff
xor bl, bl
mov eax, dword [esp + 0x3c]
test al, 1
je 0x40b921
and eax, 0xfffffffe
cmp dword [esp + 0x60], 0x10
mov dword [esp + 0x3c], eax
jb 0x40b921
push dword [esp + 0x4c]
call fcn.0042d556
add esp, 4
test bl, bl
jne 0x40ca1d
mov eax, dword [edi + 0xe8]
sub eax, dword [edi + 0xe4]
mov ebx, dword [esp + 0x40]
sar eax, 2
cmp ebx, eax
jae 0x40cbb7
mov eax, dword [edi + 0xe4]
cmp dword [eax + ebx*4], 0
jne 0x40bc77
mov edx, str._
mov ecx, 0x45dec8
call fcn.00404710
push eax
call fcn.00401870
add esp, 4
mov edx, str.____Found_Procedure_without_body._____________________
mov ecx, eax
call fcn.00404710
push eax
call fcn.00401870
add esp, 4
mov edx, str.______________________________________________________
mov ecx, eax
call fcn.00404710
push eax
call fcn.00401870
add esp, 4
lea ecx, [esp + 0x18]
push 0xb
push str.____Name:
call fcn.00403890
mov eax, dword [edi + 0xe8]
sub eax, dword [edi + 0xe4]
sar eax, 2
cmp ebx, eax
jae 0x40cb33
mov eax, dword [edi + 0xd8]
lea ebp, [ebx*8]
sub ebp, ebx
lea ecx, [edi + 0xf4]
push dword [eax + ebp*4 + 4]
lea eax, [esp + 0x50]
push eax
call fcn.00412580
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x274], 5
call fcn.0040ea80
mov byte [esp + 0x268], 3
cmp dword [esp + 0x60], 0x10
jb 0x40ba11
push dword [esp + 0x4c]
call fcn.0042d556
add esp, 4
cmp dword [esp + 0x28], 0x37
jae 0x40ba37
jmp 0x40ba20
push 1
push 0x44e2e8
lea ecx, [esp + 0x20]
call fcn.0040eb80
cmp dword [esp + 0x28], 0x37
jb 0x40ba20
push 1
push 0x44dfc0
lea ecx, [esp + 0x20]
call fcn.0040eb80
lea edx, [esp + 0x18]
mov ecx, 0x45dec8
call fcn.0040a3e0
push eax
call fcn.00401870
add esp, 4
mov edx, str.______________________________________________________
mov ecx, eax
call fcn.00404710
push eax
call fcn.00401870
mov eax, dword [edi + 0xe8]
sub eax, dword [edi + 0xe4]
add esp, 4
sar eax, 2
cmp ebx, eax
jae 0x40cb07
mov eax, dword [edi + 0xd8]
mov ecx, 0x45dec8
test dword [eax + ebp*4 + 8], 0x80000000
jne 0x40bc2c
mov edx, str.____Other_possible_name_s_:___________________________
call fcn.00404710
push eax
call fcn.00401870
mov ecx, dword [edi + 0xdc]
sub ecx, dword [edi + 0xd8]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
lea esi, [ebx + 1]
add eax, edx
add esp, 4
cmp esi, eax
jae 0x40bc3f
lea ebx, [esi*8]
sub ebx, esi
shl ebx, 2
lea esp, [esp]
mov eax, dword [edi + 0xe8]
sub eax, dword [edi + 0xe4]
sar eax, 2
cmp esi, eax
jae 0x40cadb
mov eax, dword [edi + 0xe8]
sub eax, dword [edi + 0xe4]
mov ecx, dword [esp + 0x40]
mov edx, dword [edi + 0xd8]
sar eax, 2
cmp ecx, eax
jae 0x40caaf
mov eax, dword [edx + ebx + 0x14]
mov ecx, edx
cmp eax, dword [ecx + ebp*4 + 0x14]
jne 0x40bbff
push 8
push 0x44e328
lea ecx, [esp + 0x20]
call fcn.00403890
mov eax, dword [edi + 0xe8]
sub eax, dword [edi + 0xe4]
sar eax, 2
cmp esi, eax
jae 0x40ca83
mov eax, dword [edi + 0xd8]
lea ecx, [edi + 0xf4]
push dword [eax + ebx + 4]
lea eax, [esp + 0x50]
push eax
call fcn.00412580
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x274], 6
call fcn.0040ea80
mov byte [esp + 0x268], 3
cmp dword [esp + 0x60], 0x10
jb 0x40bbaa
push dword [esp + 0x4c]
call fcn.0042d556
add esp, 4
cmp dword [esp + 0x28], 0x37
jae 0x40bbc8
push 1
push 0x44e2e8
lea ecx, [esp + 0x20]
call fcn.0040eb80
cmp dword [esp + 0x28], 0x37
jb 0x40bbb1
push 1
push 0x44dfc0
lea ecx, [esp + 0x20]
call fcn.0040eb80
lea edx, [esp + 0x18]
mov ecx, 0x45dec8
call fcn.0040a3e0
push eax
call fcn.00401870
add esp, 4
lea ecx, [esp + 0x18]
push 8
push 0x44e328
call fcn.00403890
mov ecx, dword [edi + 0xdc]
sub ecx, dword [edi + 0xd8]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc esi
add eax, edx
add ebx, 0x1c
cmp esi, eax
jb 0x40baf0
jmp 0x40bc3f
mov edx, str.___________Not_implemented____________________________
call fcn.00404710
push eax
call fcn.00401870
add esp, 4
mov edx, str.______________________________________________________
mov ecx, 0x45dec8
call fcn.00404710
push eax
call fcn.00401870
add esp, 4
mov edx, 0x44dffc
mov ecx, eax
call fcn.00404710
push eax
call fcn.00401870
add esp, 4
push eax
call fcn.00401870
jmp 0x40ca1a
mov eax, dword [edi + 0xe8]
sub eax, dword [edi + 0xe4]
sar eax, 2
cmp ebx, eax
jae 0x40cb8b
mov ecx, dword [edi + 0xd8]
lea esi, [ebx*8]
sub esi, ebx
shl esi, 2
add ecx, esi
mov dword [esp + method.CProcDescriptor.virtual_0], vtable.CProcDescriptor.0
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 8]
mov ebp, dword [ecx + 0xc]
mov dword [esp + 0x1bc], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x1c8], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x1cc], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x1c0], ebx
mov dword [esp + 0x1c4], ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x268], 7
lea ecx, [esp + 0x18]
test bl, 0x10
je 0x40bd0b
push 9
push str.critical
jmp 0x40bd12
push 0
push 0x44d470
call fcn.00403890
push 0xa
push str.procedure
lea ecx, [esp + 0x20]
call fcn.0040eb80
mov eax, dword [edi + 0xe8]
sub eax, dword [edi + 0xe4]
mov ecx, dword [esp + 0x40]
sar eax, 2
cmp ecx, eax
jae 0x40cb5f
mov eax, dword [edi + 0xd8]
lea ecx, [edi + 0xf4]
push dword [eax + esi + 4]
lea eax, [esp + 0x50]
push eax
call fcn.00412580
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x274], 8
call fcn.0040ea80
mov byte [esp + 0x268], 7
cmp dword [esp + 0x60], 0x10
jb 0x40bd8d
push dword [esp + 0x4c]
call fcn.0042d556
add esp, 4
mov esi, dword [esp + 0x34]
test esi, esi
je 0x40befc
push 1
push 0x44e1c4
lea ecx, [esp + 0x20]
call fcn.0040eb80
xor ebx, ebx
test esi, esi
je 0x40bee8
lea edx, [esp + 0x18]
lea ecx, [esp + 0x4c]
test ebx, ebx
jne 0x40bdd4
push ebx
push str.variable
call fcn.0040ecb0
mov byte [esp + 0x270], 9
jmp 0x40bde7
push ebx
push str.__variable
call fcn.0040ecb0
mov byte [esp + 0x270], 0xa
cmp dword [esp + 0x98], 0x10
lea edx, [esp + 0x84]
cmovae edx, dword [esp + 0x84]
sub esp, 0x14
mov ecx, esp
push edx
mov edx, eax
call fcn.0040ed90
add esp, 4
lea eax, [esp + 0x80]
push eax
call fcn.0042baa0
mov esi, eax
lea eax, [esp + 0x38]
add esp, 0x20
cmp eax, esi
je 0x40be98
cmp dword [esp + 0x2c], 0x10
jb 0x40be3b
push dword [esp + 0x18]
call fcn.0042d556
add esp, 4
mov dword [esp + 0x2c], 0xf
mov dword [esp + 0x28], 0
mov byte [esp + 0x18], 0
cmp dword [esi + 0x14], 0x10
jae 0x40be6d
mov eax, dword [esi + 0x10]
inc eax
je 0x40be79
push eax
lea eax, [esp + 0x1c]
push esi
push eax
call fcn.0042ccb0
add esp, 0xc
jmp 0x40be79
mov eax, dword [esi]
mov dword [esp + 0x18], eax
mov dword [esi], 0
mov eax, dword [esi + 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x2c], eax
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
cmp dword [esp + 0x78], 0x10
jb 0x40beab
push dword [esp + 0x64]
call fcn.0042d556
add esp, 4
mov byte [esp + 0x268], 7
cmp dword [esp + 0x60], 0x10
mov byte [esp + 0x64], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0xf
jb 0x40bedb
push dword [esp + 0x4c]
call fcn.0042d556
add esp, 4
mov esi, dword [esp + 0x34]
inc ebx
cmp ebx, esi
jb 0x40bdb3
push 1
push 0x44e1d4
lea ecx, [esp + 0x20]
call fcn.0040eb80
mov ebx, dword [esp + 0x38]
test bl, 1
je 0x40bfac
push ebp
sub esp, 0x18
mov ecx, esp
push str._in__d
lea edx, [esp + 0x38]
call fcn.0040ecb0
add esp, 4
lea eax, [esp + 0x68]
push eax
call fcn.0042baa0
mov esi, eax
lea eax, [esp + 0x38]
add esp, 0x20
cmp eax, esi
je 0x40c0c3
cmp dword [esp + 0x2c], 0x10
jb 0x40bf4a
push dword [esp + 0x18]
call fcn.0042d556
add esp, 4
mov dword [esp + 0x2c], 0xf
mov dword [esp + 0x28], 0
mov byte [esp + 0x18], 0
cmp dword [esi + 0x14], 0x10
jae 0x40bf7c
mov eax, dword [esi + 0x10]
inc eax
je 0x40bf88
push eax
lea eax, [esp + 0x1c]
push esi
push eax
call fcn.0042ccb0
add esp, 0xc
jmp 0x40bf88
mov eax, dword [esi]
mov dword [esp + 0x18], eax
mov dword [esi], 0
mov eax, dword [esi + 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x2c], eax
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
jmp 0x40c0c3
test bl, 2
je 0x40c0d6
mov eax, dword [esp + 0x40]
push esi
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x160]
push 0
push dword [eax + ecx*4]
lea eax, [esp + 0x58]
push eax
mov ecx, edi
call fcn.0040ccb0
mov edx, eax
mov byte [esp + 0x268], 0xb
cmp dword [edx + 0x14], 0x10
jb 0x40bfe6
mov edx, dword [edx]
sub esp, 0x18
mov esi, esp
mov dword [esp + 0x50], esp
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
cmp byte [edx], 0
jne 0x40c009
xor ecx, ecx
jmp 0x40c019
mov ecx, edx
lea ebx, [ecx + 1]
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40c010
sub ecx, ebx
push ecx
push edx
mov ecx, esi
call fcn.00403890
sub esp, 0x18
mov ecx, esp
push str._when___s_
lea edx, [esp + 0x4c]
mov byte [esp + 0x29c], 0xc
call fcn.0040ecb0
add esp, 4
lea ecx, [esp + 0x94]
mov byte [esp + 0x298], 0xb
call fcn.0042bb60
mov esi, eax
lea eax, [esp + 0x48]
add esp, 0x30
cmp eax, esi
je 0x40c093
cmp dword [esp + 0x2c], 0x10
jb 0x40c074
push dword [esp + 0x18]
call fcn.0042d556
add esp, 4
push esi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], 0
mov byte [esp + 0x1c], 0
call fcn.00408420
cmp dword [esp + 0x78], 0x10
jb 0x40c0a6
push dword [esp + 0x64]
call fcn.0042d556
add esp, 4
mov dword [esp + 0x78], 0xf
mov dword [esp + 0x74], 0
mov byte [esp + 0x64], 0
mov byte [esp + 0x268], 7
cmp dword [esp + 0x60], 0x10
jb 0x40c0d6
push dword [esp + 0x4c]
call fcn.0042d556
add esp, 4
lea edx, [esp + 0x18]
mov ecx, 0x45dec8
call fcn.0040a3e0
push eax
call fcn.00401870
mov eax, dword [esp + 0x38]
mov ebx, dword [edi + 0x154]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x44]
xor esi, esi
lea ecx, [eax + eax*2]
shl ecx, 2
add ebx, ecx
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebx + 4]
sub ecx, dword [ebx]
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add esp, 4
mov byte [esp + 0x33], 1
mov dword [esp + 0x14], esi
mov dword [esp + 0x44], esi
add eax, edx
je 0x40ca08
xor ebp, ebp
mov edx, esi
lea ebx, [ebx]
mov eax, dword [ebx]
mov ecx, dword [eax + ebp + 0x14]
cmp ecx, 1
jne 0x40c1d5
cmp edx, ecx
jbe 0x40c1b3
cmp dword [eax + ebp - 0x10], 2
jne 0x40c1b3
push esi
lea eax, [esp + 0x50]
push eax
call fcn.0040e8f0
mov edx, eax
mov ecx, 0x45dec8
mov byte [esp + 0x268], 0xd
call fcn.0040a3e0
mov edx, str.else_begin
mov ecx, eax
call fcn.00404710
push eax
call fcn.00401870
add esp, 4
mov byte [esp + 0x268], 7
cmp dword [esp + 0x60], 0x10
jb 0x40c1a9
push dword [esp + 0x4c]
call fcn.0042d556
add esp, 4
inc esi
mov dword [esp + 0x14], esi
jmp 0x40c9d5
mov edx, str.begin
mov ecx, 0x45dec8
call fcn.00404710
push eax
call fcn.00401870
add esp, 4
inc esi
mov dword [esp + 0x14], esi
jmp 0x40c9d5
cmp ecx, 2
jne 0x40c237
dec esi
push esi
lea eax, [esp + 0x50]
push eax
mov dword [esp + 0x1c], esi
call fcn.0040e8f0
mov edx, eax
mov ecx, 0x45dec8
mov byte [esp + 0x268], 0xe
call fcn.0040a3e0
mov edx, 0x44e3a4
mov ecx, eax
call fcn.00404710
push eax
call fcn.00401870
add esp, 4
mov byte [esp + 0x268], 7
cmp dword [esp + 0x60], 0x10
jb 0x40c9d5
push dword [esp + 0x4c]
call fcn.0042d556
add esp, 4
jmp 0x40c9d5
movzx esi, word [eax + ebp + 0xc]
lea ecx, [eax + 8]
lea eax, [esp + 0x21c]
push eax
add ecx, ebp
call fcn.00413980
mov ecx, dword [esp + 0x3c]
or ecx, 2
cmp dword [eax + 0x34], 1
mov dword [esp + 0x3c], ecx
jne 0x40c281
mov eax, 0x9001
cmp si, ax
je 0x40c281
mov eax, 0xa001
cmp si, ax
je 0x40c281
mov eax, 0xc001
cmp si, ax
je 0x40c281
mov bl, 1
jmp 0x40c283
xor bl, bl
test cl, 2
je 0x40c2df
and ecx, 0xfffffffd
cmp dword [esp + 0x248], 0x10
mov dword [esp + 0x3c], ecx
jb 0x40c2a8
push dword [esp + 0x234]
call fcn.0042d556
add esp, 4
cmp dword [esp + 0x230], 0x10
mov dword [esp + 0x248], 0xf
mov dword [esp + 0x244], 0
mov byte [esp + 0x234], 0
jb 0x40c2df
push dword [esp + 0x21c]
call fcn.0042d556
add esp, 4
test bl, bl
mov ebx, dword [esp + 0x48]
je 0x40c302
mov eax, dword [edi + 0x154]
mov eax, dword [ebx + eax]
push dword [eax + ebp + 4]
push esi
push str.Warning:_Result_of_expression_is_left_in_stack.__Opcode_0x_04X_at_0x_08X__n
call fcn.0042d47b
add esp, 0xc
mov eax, esi
cmp eax, 0x9001
jg 0x40c62b
je 0x40c752
sub eax, 0x802f
je 0x40c56d
dec eax
jne 0x40c641
mov ecx, dword [edi + 0x154]
mov eax, dword [ecx + ebx]
cmp dword [eax + ebp + 0x14], 6
jne 0x40c4b8
push dword [esp + 0x14]
lea eax, [esp + 0x15c]
push eax
call fcn.0040e8f0
push str.for__
mov edx, eax
lea ecx, [esp + 0x68]
mov byte [esp + 0x26c], 0x15
call fcn.0040ed90
add esp, 4
mov byte [esp + 0x268], 0x17
cmp dword [esp + 0x16c], 0x10
jb 0x40c388
push dword [esp + 0x158]
call fcn.0042d556
add esp, 4
mov eax, dword [edi + 0x154]
mov dword [esp + 0x16c], 0xf
mov dword [esp + 0x168], 0
mov byte [esp + 0x158], 0
mov eax, dword [ebx + eax]
xor esi, esi
mov ecx, dword [eax + ebp + 0x1c]
sub ecx, dword [eax + ebp + 0x18]
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x40c495
xor ebx, ebx
test esi, esi
je 0x40c3e6
push 2
push 0x44e458
lea ecx, [esp + 0x6c]
call fcn.0040eb80
mov eax, dword [edi + 0x154]
add eax, dword [esp + 0x48]
push dword [esp + 0x34]
mov ecx, edi
mov eax, dword [eax]
push 0
mov eax, dword [eax + ebp + 0x18]
add eax, ebx
push eax
lea eax, [esp + 0x130]
push eax
call fcn.0040ccb0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x70]
mov byte [esp + 0x274], 0x18
call fcn.0040ea80
mov byte [esp + 0x268], 0x17
cmp dword [esp + 0x138], 0x10
jb 0x40c445
push dword [esp + 0x124]
call fcn.0042d556
add esp, 4
mov ecx, dword [esp + 0x48]
mov eax, dword [edi + 0x154]
mov dword [esp + 0x138], 0xf
mov dword [esp + 0x134], 0
mov byte [esp + 0x124], 0
mov eax, dword [ecx + eax]
inc esi
mov ecx, dword [eax + ebp + 0x1c]
sub ecx, dword [eax + ebp + 0x18]
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
add ebx, 0x24
cmp esi, eax
jb 0x40c3d2
push 2
push 0x44e45c
lea ecx, [esp + 0x6c]
call fcn.0040eb80
lea edx, [esp + 0x64]
mov ecx, 0x45dec8
call fcn.0040a3e0
jmp 0x40c9b6
push dword [esp + 0x34]
add eax, ebp
push 0
push eax
lea eax, [esp + 0x1f8]
push eax
mov ecx, edi
call fcn.0040ccb0
mov esi, eax
push dword [esp + 0x14]
lea eax, [esp + 0x1d8]
push eax
mov byte [esp + 0x270], 0x19
call fcn.0040e8f0
mov edx, eax
mov ecx, 0x45dec8
mov byte [esp + 0x268], 0x1a
call fcn.0040a3e0
mov edx, esi
mov ecx, eax
call fcn.0040a3e0
mov edx, str._do
mov ecx, eax
call fcn.00404710
cmp dword [esp + 0x1e8], 0x10
jb 0x40c52d
push dword [esp + 0x1d4]
call fcn.0042d556
add esp, 4
mov byte [esp + 0x268], 7
cmp dword [esp + 0x200], 0x10
mov dword [esp + 0x1e8], 0xf
mov dword [esp + 0x1e4], 0
mov byte [esp + 0x1d4], 0
jb 0x40c9d1
push dword [esp + 0x1ec]
jmp 0x40c9c9
mov eax, dword [edi + 0x154]
push dword [esp + 0x34]
mov eax, dword [eax + ebx]
add eax, ebp
push 0
push eax
lea eax, [esp + 0x210]
push eax
mov ecx, edi
call fcn.0040ccb0
mov esi, eax
push dword [esp + 0x14]
lea eax, [esp + 0xf8]
push eax
mov byte [esp + 0x270], 0x13
call fcn.0040e8f0
mov edx, eax
mov ecx, 0x45dec8
mov byte [esp + 0x268], 0x14
call fcn.0040a3e0
mov edx, esi
mov ecx, eax
call fcn.0040a3e0
mov edx, str._then
mov ecx, eax
call fcn.00404710
cmp dword [esp + 0x108], 0x10
jb 0x40c5eb
push dword [esp + 0xf4]
call fcn.0042d556
add esp, 4
mov byte [esp + 0x268], 7
cmp dword [esp + 0x218], 0x10
mov dword [esp + 0x108], 0xf
mov dword [esp + 0x104], 0
mov byte [esp + 0xf4], 0
jb 0x40c9d1
push dword [esp + 0x204]
jmp 0x40c9c9
cmp eax, 0xa001
je 0x40c752
cmp eax, 0xc001
je 0x40c752
mov eax, dword [edi + 0x154]
push dword [esp + 0x34]
mov eax, dword [eax + ebx]
add eax, ebp
push 0
push eax
lea eax, [esp + 0x17c]
push eax
mov ecx, edi
call fcn.0040ccb0
mov esi, eax
push dword [esp + 0x14]
lea eax, [esp + 0x18c]
push eax
mov byte [esp + 0x270], 0x1b
call fcn.0040e8f0
mov edx, eax
mov ecx, 0x45dec8
mov byte [esp + 0x268], 0x1c
call fcn.0040a3e0
mov edx, esi
mov ecx, eax
call fcn.0040a3e0
mov edx, 0x44e154
mov ecx, eax
call fcn.00404710
push eax
call fcn.00401870
add esp, 4
cmp dword [esp + 0x19c], 0x10
jb 0x40c6c8
push dword [esp + 0x188]
call fcn.0042d556
add esp, 4
mov byte [esp + 0x268], 7
cmp dword [esp + 0x184], 0x10
mov dword [esp + 0x19c], 0xf
mov dword [esp + 0x198], 0
mov byte [esp + 0x188], 0
jb 0x40c707
push dword [esp + 0x170]
call fcn.0042d556
add esp, 4
mov eax, dword [edi + 0x154]
mov dword [esp + 0x184], 0xf
mov dword [esp + 0x180], 0
mov byte [esp + 0x170], 0
mov eax, dword [ebx + eax]
mov eax, dword [eax + ebp + 0x14]
cmp eax, 1
je 0x40c9d1
mov esi, dword [esp + 0x14]
cmp eax, 2
je 0x40c9d5
mov byte [esp + 0x33], 0
jmp 0x40c9d5
cmp byte [esp + 0x33], 0
jne 0x40c766
push str.Warning:_Free_value_found._Converted_to_definition_of_local_variable_n
call fcn.0042d47b
add esp, 4
push 9
push str.variable
lea ecx, [esp + 0x6c]
mov dword [esp + 0x80], 0xf
mov dword [esp + 0x7c], 0
mov byte [esp + 0x6c], 0
call fcn.00403890
push str._:
lea edx, [esp + 0xbc]
lea ecx, [esp + 0x1a4]
mov byte [esp + 0x26c], 0xf
call fcn.0040ecb0
add esp, 4
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x70]
mov byte [esp + 0x274], 0x10
call fcn.0040ea80
mov byte [esp + 0x268], 0xf
cmp dword [esp + 0x1b4], 0x10
jb 0x40c7e8
push dword [esp + 0x1a0]
call fcn.0042d556
add esp, 4
cmp dword [esp + 0x78], 0x10
mov ebx, dword [esp + 0x38]
lea edx, [esp + 0x64]
cmovae edx, dword [esp + 0x64]
push ebx
sub esp, 0x18
mov esi, esp
mov dword [esp + 0x1d0], 0xf
mov dword [esp + 0x1cc], 0
mov byte [esp + 0x1bc], 0
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
cmp byte [edx], 0
jne 0x40c838
xor eax, eax
jmp 0x40c84d
mov eax, edx
lea ebx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c840
sub eax, ebx
mov ebx, dword [esp + 0x54]
push eax
push edx
mov ecx, esi
call fcn.00403890
lea eax, [esp + 0x128]
push eax
call fcn.0042baa0
mov esi, eax
lea eax, [esp + 0x38]
add esp, 0x20
cmp eax, esi
je 0x40c8a2
cmp dword [esp + 0x2c], 0x10
jb 0x40c883
push dword [esp + 0x18]
call fcn.0042d556
add esp, 4
push esi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], 0
mov byte [esp + 0x1c], 0
call fcn.00408420
cmp dword [esp + 0x120], 0x10
jb 0x40c8bb
push dword [esp + 0x10c]
call fcn.0042d556
add esp, 4
mov eax, dword [edi + 0x154]
add eax, dword [esp + 0x48]
push dword [esp + 0x34]
mov dword [esp + 0x124], 0xf
mov dword [esp + 0x120], 0
mov byte [esp + 0x110], 0
mov eax, dword [eax]
add eax, ebp
push 0
push eax
lea eax, [esp + 0x58]
push eax
mov ecx, edi
call fcn.0040ccb0
mov esi, eax
push dword [esp + 0x14]
lea eax, [esp + 0x140]
push eax
mov byte [esp + 0x270], 0x11
call fcn.0040e8f0
mov edx, eax
mov ecx, 0x45dec8
mov byte [esp + 0x268], 0x12
call fcn.0040a3e0
lea edx, [esp + 0x18]
mov ecx, eax
call fcn.0040a3e0
mov edx, esi
mov ecx, eax
call fcn.0040a3e0
mov edx, 0x44e154
mov ecx, eax
call fcn.00404710
push eax
call fcn.00401870
add esp, 4
cmp dword [esp + 0x150], 0x10
jb 0x40c96b
push dword [esp + 0x13c]
call fcn.0042d556
add esp, 4
cmp dword [esp + 0x60], 0x10
mov dword [esp + 0x150], 0xf
mov dword [esp + 0x14c], 0
mov byte [esp + 0x13c], 0
jb 0x40c99c
push dword [esp + 0x4c]
call fcn.0042d556
add esp, 4
inc ebx
mov dword [esp + 0x60], 0xf
mov dword [esp + 0x5c], 0
mov byte [esp + 0x4c], 0
mov dword [esp + 0x38], ebx
mov byte [esp + 0x268], 7
cmp dword [esp + 0x78], 0x10
jb 0x40c9d1
push dword [esp + 0x64]
call fcn.0042d556
add esp, 4
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x48]
add ebx, dword [edi + 0x154]
inc dword [esp + 0x44]
mov eax, 0x38e38e39
mov ecx, dword [ebx + 4]
sub ecx, dword [ebx]
add ebp, 0x24
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x44]
cmp edx, eax
jb 0x40c140
push 0x45dec8
call fcn.00401870
mov byte [esp + 0x26c], 3
add esp, 4
mov ecx, dword [edi + 0xdc]
sub ecx, dword [edi + 0xd8]
mov ebx, dword [esp + 0x40]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc ebx
add eax, edx
mov dword [esp + 0x40], ebx
cmp ebx, eax
jae 0x40cbe3
mov esi, dword [esp + 0x3c]
jmp 0x40b7b1
push 0
push str.Warning:_Invalid_index_of_procedure___d_._Exception_will_be_thrown_n
call fcn.0042d47b
add esp, 8
lea ecx, [esp + 0xd0]
call fcn.0042cbca
push 0x455e70
lea eax, [esp + 0xd4]
push eax
call fcn.0042f49a
push esi
push str.Warning:_Invalid_index_of_procedure___d_._Exception_will_be_thrown_n
call fcn.0042d47b
add esp, 8
lea ecx, [esp + 0x94]
call fcn.0042cbca
push 0x455e70
lea eax, [esp + 0x98]
push eax
call fcn.0042f49a
push ecx
push str.Warning:_Invalid_index_of_procedure___d_._Exception_will_be_thrown_n
call fcn.0042d47b
add esp, 8
lea ecx, [esp + 0x94]
call fcn.0042cbca
push 0x455e70
lea eax, [esp + 0x98]
push eax
call fcn.0042f49a
push esi
push str.Warning:_Invalid_index_of_procedure___d_._Exception_will_be_thrown_n
call fcn.0042d47b
add esp, 8
lea ecx, [esp + 0xd0]
call fcn.0042cbca
push 0x455e70
lea eax, [esp + 0xd4]
push eax
call fcn.0042f49a
push ebx
push str.Warning:_Invalid_index_of_procedure___d_._Exception_will_be_thrown_n
call fcn.0042d47b
add esp, 8
lea ecx, [esp + 0x94]
call fcn.0042cbca
push 0x455e70
lea eax, [esp + 0x98]
push eax
call fcn.0042f49a
push ebx
push str.Warning:_Invalid_index_of_procedure___d_._Exception_will_be_thrown_n
call fcn.0042d47b
add esp, 8
lea ecx, [esp + 0xe8]
call fcn.0042cbca
push 0x455e70
lea eax, [esp + 0xec]
push eax
call fcn.0042f49a
push ecx
push str.Warning:_Invalid_index_of_procedure___d_._Exception_will_be_thrown_n
call fcn.0042d47b
add esp, 8
lea ecx, [esp + 0xdc]
call fcn.0042cbca
push 0x455e70
lea eax, [esp + 0xe0]
push eax
call fcn.0042f49a
push ebx
push str.Warning:_Invalid_index_of_procedure___d_._Exception_will_be_thrown_n
call fcn.0042d47b
add esp, 8
lea ecx, [esp + 0xe8]
call fcn.0042cbca
push 0x455e70
lea eax, [esp + 0xec]
push eax
call fcn.0042f49a
push ebx
push str.Warning:_Invalid_index_of_procedure___d_._Exception_will_be_thrown_n
call fcn.0042d47b
add esp, 8
lea ecx, [esp + 0xdc]
call fcn.0042cbca
push 0x455e70
lea eax, [esp + 0xe0]
push eax
call fcn.0042f49a
cmp dword [esp + 0x2c], 0x10
jb 0x40cbf6
push dword [esp + 0x18]
call fcn.0042d556
add esp, 4
cmp dword [esp + 0xcc], 0x10
mov dword [esp + 0x2c], 0xf
mov dword [esp + 0x28], 0
mov byte [esp + 0x18], 0
jb 0x40cc24
push dword [esp + 0xb8]
call fcn.0042d556
add esp, 4
cmp dword [esp + 0x90], 0x10
mov dword [esp + 0xcc], 0xf
mov dword [esp + 0xc8], 0
mov byte [esp + 0xb8], 0
jb 0x40cc58
push dword [esp + 0x7c]
call fcn.0042d556
add esp, 4
cmp dword [esp + 0xb4], 0x10
mov dword [esp + 0x90], 0xf
mov dword [esp + 0x8c], 0
mov byte [esp + 0x7c], 0
jb 0x40cc8c
push dword [esp + 0xa0]
call fcn.0042d556
add esp, 4
mov ecx, dword [esp + 0x260]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x25c
ret