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

Disassembly:
push 0xffffffffffffffff
push 0x48081f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd4
mov al, byte [esp + 3]
push ebx
push ebp
push esi
mov ebp, ecx
push edi
push 0
lea ecx, [esp + 0x18]
mov dword [esp + 0x64], ebp
mov byte [esp + 0x18], al
call fcn.004015d0
mov esi, dword [esp + 0xf4]
push 0xa
mov dword [esp + 0xf0], 0
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
call fcn.0040ef40
lea edx, [esp + 0x14]
push eax
push edx
push esi
call fcn.0040ff20
mov eax, dword [0x4c72a8]
mov cl, byte [esp + 0x1f]
add esp, 0xc
mov ebx, dword [eax]
mov byte [esp + 0x24], cl
push 0
lea ecx, [esp + 0x28]
call fcn.004015d0
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebx
lea ecx, [esp + 0x2c]
call fcn.00402ff0
lea edx, [esp + 0x24]
push 0x3a
lea eax, [esp + 0x4c]
push edx
push eax
mov byte [esp + 0xf8], 1
call fcn.0040e0d0
add esp, 0xc
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xf0], 2
call fcn.0040eef0
test eax, eax
push 1
lea ecx, [esp + 0x4c]
setne bl
mov byte [esp + 0xf0], 1
call fcn.004015d0
push 1
lea ecx, [esp + 0x28]
mov byte [esp + 0xf0], 0
call fcn.004015d0
test bl, bl
je 0x4060c5
lea ecx, [esp + 0x24]
call fcn.0044f4a9
lea ecx, [esp + 0x24]
push 0x4992d8
push ecx
mov dword [esp + 0x2c], vtable.TCampaign::TImportTextFailure.0
call fcn.0044f5c5
mov edx, dword [esi]
push 0xa
mov ecx, dword [edx + 4]
add ecx, esi
call fcn.0040ef40
push eax
lea eax, [esp + 0x18]
push eax
push esi
call fcn.0040ff20
mov eax, dword [esp + 0x28]
add esp, 0xc
cmp eax, 0x3c
jbe 0x406142
mov edi, dword [0x4876b4]
lea ecx, [esp + 0x14]
call fcn.00401760
mov ecx, dword [esp + 0x1c]
lea eax, [ecx - 0x3c]
cmp eax, edi
jae 0x406107
mov edi, eax
test edi, edi
jbe 0x406142
mov edx, dword [esp + 0x18]
sub eax, edi
push eax
lea ecx, [edx + 0x3c]
lea edx, [ecx + edi]
push edx
push ecx
call fcn.0044f600
mov ebx, dword [esp + 0x28]
add esp, 0xc
sub ebx, edi
lea ecx, [esp + 0x14]
push 0
push ebx
call fcn.00401640
test al, al
je 0x406142
push ebx
lea ecx, [esp + 0x18]
call fcn.00401620
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
call fcn.00407140
mov ecx, dword [esi]
push 0xa
mov ecx, dword [ecx + 4]
add ecx, esi
call fcn.0040ef40
lea edx, [esp + 0x14]
push eax
push edx
push esi
call fcn.0040ff20
mov eax, dword [esp + 0x28]
add esp, 0xc
test eax, eax
je 0x406193
lea ecx, [esp + 0x24]
call fcn.0044f4a9
lea eax, [esp + 0x24]
push 0x4992d8
push eax
mov dword [esp + 0x2c], vtable.TCampaign::TImportTextFailure.0
call fcn.0044f5c5
mov ecx, dword [esi]
push 0xa
mov ecx, dword [ecx + 4]
add ecx, esi
call fcn.0040ef40
lea edx, [esp + 0x14]
push eax
push edx
push esi
call fcn.0040ff20
mov eax, dword [0x4c6e80]
mov cl, byte [esp + 0x1f]
add esp, 0xc
mov ebx, dword [eax]
mov byte [esp + 0x24], cl
push 0
lea ecx, [esp + 0x28]
call fcn.004015d0
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebx
lea ecx, [esp + 0x2c]
call fcn.00402ff0
lea edx, [esp + 0x24]
push 0x3a
lea eax, [esp + 0x4c]
push edx
push eax
mov byte [esp + 0xf8], 3
call fcn.0040e0d0
add esp, 0xc
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xf0], 4
call fcn.0040eef0
test eax, eax
push 1
lea ecx, [esp + 0x4c]
setne bl
mov byte [esp + 0xf0], 3
call fcn.004015d0
push 1
lea ecx, [esp + 0x28]
mov byte [esp + 0xf0], 0
call fcn.004015d0
test bl, bl
je 0x40625e
lea ecx, [esp + 0x24]
call fcn.0044f4a9
lea ecx, [esp + 0x24]
push 0x4992d8
push ecx
mov dword [esp + 0x2c], vtable.TCampaign::TImportTextFailure.0
call fcn.0044f5c5
mov edx, dword [esi]
push 0xa
mov ecx, dword [edx + 4]
add ecx, esi
call fcn.0040ef40
push eax
lea eax, [esp + 0x18]
push eax
push esi
call fcn.0040ff20
mov eax, dword [esp + 0x28]
add esp, 0xc
cmp eax, 0x12c
jbe 0x4062e3
mov edi, dword [0x4876b4]
lea ecx, [esp + 0x14]
call fcn.00401760
mov ecx, dword [esp + 0x1c]
lea eax, [ecx - 0x12c]
cmp eax, edi
jae 0x4062a5
mov edi, eax
test edi, edi
jbe 0x4062e3
mov edx, dword [esp + 0x18]
sub eax, edi
push eax
lea ecx, [edx + 0x12c]
lea edx, [ecx + edi]
push edx
push ecx
call fcn.0044f600
mov ebx, dword [esp + 0x28]
add esp, 0xc
sub ebx, edi
lea ecx, [esp + 0x14]
push 0
push ebx
call fcn.00401640
test al, al
je 0x4062e3
push ebx
lea ecx, [esp + 0x18]
call fcn.00401620
lea ecx, [esp + 0x14]
call fcn.0040b130
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4062f8
xor edi, edi
jmp 0x4062ff
mov ecx, dword [esp + 0x1c]
lea edi, [eax + ecx]
lea ecx, [esp + 0x14]
call fcn.0040b130
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x40631d
cmp byte [eax], 9
jne 0x406318
mov byte [eax], 0xa
inc eax
cmp eax, edi
jne 0x406310
lea edx, [esp + 0x14]
mov ecx, ebp
push edx
call fcn.00407280
mov eax, dword [esi]
push 0xa
mov ecx, dword [eax + 4]
add ecx, esi
call fcn.0040ef40
lea ecx, [esp + 0x14]
push eax
push ecx
push esi
call fcn.0040ff20
mov eax, dword [esp + 0x28]
add esp, 0xc
test eax, eax
je 0x40636e
lea ecx, [esp + 0x24]
call fcn.0044f4a9
lea edx, [esp + 0x24]
push 0x4992d8
push edx
mov dword [esp + 0x2c], vtable.TCampaign::TImportTextFailure.0
call fcn.0044f5c5
mov eax, dword [ebp]
mov ecx, dword [0x4a9498]
shl eax, 4
xor ebx, ebx
mov edx, dword [eax + ecx + 8]
mov dword [esp + 0x44], ebx
cmp edx, ebx
jbe 0x406a14
mov dword [esp + 0x40], ebx
mov eax, dword [ebp + 0x30]
lea edi, [eax + ebx*4]
mov ecx, edi
mov dword [esp + 0x34], edi
call fcn.00409d30
test eax, eax
je 0x4069ef
mov ecx, edi
call fcn.00409d30
mov edx, dword [esi]
push 0xa
mov edi, eax
mov ecx, dword [edx + 4]
add ecx, esi
call fcn.0040ef40
push eax
lea eax, [esp + 0x18]
push eax
push esi
call fcn.0040ff20
mov eax, dword [esp + 0x28]
add esp, 0xc
test eax, eax
jne 0x406a45
mov ecx, dword [esi]
push 0xa
mov ecx, dword [ecx + 4]
add ecx, esi
call fcn.0040ef40
lea edx, [esp + 0x14]
push eax
push edx
push esi
call fcn.0040ff20
add edi, 0x14
push 0x4a650c
lea eax, [esp + 0xb4]
push edi
push eax
call fcn.0040e1e0
mov ecx, dword [ebp]
mov edx, dword [0x4a9498]
shl ecx, 4
mov byte [esp + 0x104], 5
mov ecx, dword [ecx + edx + 0xc]
mov edx, dword [esp + 0x58]
mov ecx, dword [ecx + edx]
lea edx, [esp + 0xec]
push ecx
push eax
push edx
call fcn.0040e1e0
add esp, 0x24
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xf0], 6
call fcn.0040eef0
test eax, eax
push 1
lea ecx, [esp + 0xd8]
setne bl
mov byte [esp + 0xf0], 5
call fcn.004015d0
push 1
lea ecx, [esp + 0xa8]
mov byte [esp + 0xf0], 0
call fcn.004015d0
test bl, bl
jne 0x406a65
mov eax, dword [esi]
push 0xa
mov ecx, dword [eax + 4]
add ecx, esi
call fcn.0040ef40
lea ecx, [esp + 0x14]
push eax
push ecx
push esi
call fcn.0040ff20
mov eax, dword [esp + 0x28]
add esp, 0xc
test eax, eax
jne 0x406a85
mov edx, dword [esi]
push 0xa
mov ecx, dword [edx + 4]
add ecx, esi
call fcn.0040ef40
push eax
lea eax, [esp + 0x18]
push eax
push esi
call fcn.0040ff20
mov ecx, dword [0x4c7070]
mov dl, byte [esp + 0x1f]
add esp, 0xc
mov ebp, dword [ecx]
lea ecx, [esp + 0x64]
push 0
mov byte [esp + 0x68], dl
call fcn.004015d0
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
lea ecx, [esp + 0x6c]
call fcn.00402ff0
lea eax, [esp + 0x64]
push 0x3a
lea ecx, [esp + 0xc8]
push eax
push ecx
mov byte [esp + 0xf8], 7
call fcn.0040e0d0
add esp, 0xc
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xf0], 8
call fcn.0040eef0
test eax, eax
push 1
lea ecx, [esp + 0xc8]
setne bl
mov byte [esp + 0xf0], 7
call fcn.004015d0
push 1
lea ecx, [esp + 0x68]
mov byte [esp + 0xf0], 0
call fcn.004015d0
test bl, bl
jne 0x406aa5
mov edx, dword [esi]
push 0xa
mov ecx, dword [edx + 4]
add ecx, esi
call fcn.0040ef40
push eax
lea eax, [esp + 0x18]
push eax
push esi
call fcn.0040ff20
mov eax, dword [esp + 0x28]
add esp, 0xc
cmp eax, 0x258
jbe 0x4065eb
mov edi, dword [0x4876b4]
lea ecx, [esp + 0x14]
call fcn.00401760
mov ecx, dword [esp + 0x1c]
lea eax, [ecx - 0x258]
cmp eax, edi
jae 0x4065ad
mov edi, eax
test edi, edi
jbe 0x4065eb
mov edx, dword [esp + 0x18]
sub eax, edi
push eax
lea ecx, [edx + 0x258]
lea edx, [ecx + edi]
push edx
push ecx
call fcn.0044f600
mov ebp, dword [esp + 0x28]
add esp, 0xc
sub ebp, edi
lea ecx, [esp + 0x14]
push 0
push ebp
call fcn.00401640
test al, al
je 0x4065eb
push ebp
lea ecx, [esp + 0x18]
call fcn.00401620
lea ecx, [esp + 0x14]
call fcn.0040b130
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x406600
xor edi, edi
jmp 0x406607
mov ecx, dword [esp + 0x1c]
lea edi, [eax + ecx]
lea ecx, [esp + 0x14]
call fcn.0040b130
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x406625
cmp byte [eax], 9
jne 0x406620
mov byte [eax], 0xa
inc eax
cmp eax, edi
jne 0x406618
mov edi, dword [esp + 0x34]
lea edx, [esp + 0x14]
push edx
mov ecx, edi
call fcn.00409830
mov ecx, edi
call fcn.00409d70
test eax, eax
je 0x4067ff
mov ecx, edi
call fcn.00409d70
mov dword [esp + 0x3c], eax
mov eax, dword [esi]
push 0xa
mov ecx, dword [eax + 4]
add ecx, esi
call fcn.0040ef40
lea ecx, [esp + 0x14]
push eax
push ecx
push esi
call fcn.0040ff20
mov eax, dword [esp + 0x28]
add esp, 0xc
test eax, eax
jne 0x406ac5
mov edx, dword [esi]
push 0xa
mov ecx, dword [edx + 4]
add ecx, esi
call fcn.0040ef40
push eax
lea eax, [esp + 0x18]
push eax
push esi
call fcn.0040ff20
mov ecx, dword [0x4c6f78]
mov dl, byte [esp + 0x1f]
add esp, 0xc
mov ebp, dword [ecx]
lea ecx, [esp + 0x74]
push 0
mov byte [esp + 0x78], dl
call fcn.004015d0
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
lea ecx, [esp + 0x7c]
call fcn.00402ff0
lea eax, [esp + 0x74]
push 0x3a
lea ecx, [esp + 0xb8]
push eax
push ecx
mov byte [esp + 0xf8], 9
call fcn.0040e0d0
add esp, 0xc
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xf0], 0xa
call fcn.0040eef0
test eax, eax
push 1
lea ecx, [esp + 0xb8]
setne bl
mov byte [esp + 0xf0], 9
call fcn.004015d0
push 1
lea ecx, [esp + 0x78]
mov byte [esp + 0xf0], 0
call fcn.004015d0
test bl, bl
jne 0x406ae5
mov edx, dword [esi]
push 0xa
mov ecx, dword [edx + 4]
add ecx, esi
call fcn.0040ef40
push eax
lea eax, [esp + 0x18]
push eax
push esi
call fcn.0040ff20
add esp, 0xc
lea ecx, [esp + 0x14]
call fcn.0040b130
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x406760
xor edi, edi
jmp 0x406767
mov ecx, dword [esp + 0x1c]
lea edi, [eax + ecx]
lea ecx, [esp + 0x14]
call fcn.0040b130
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x406785
cmp byte [eax], 9
jne 0x406780
mov byte [eax], 0xa
inc eax
cmp eax, edi
jne 0x406778
push 0x18
call fcn.00465d62
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
mov byte [esp + 0xec], 0xb
je 0x4067b8
mov edx, dword [esp + 0x3c]
lea edi, [esp + 0x14]
push edi
mov ecx, dword [edx + 4]
mov edx, dword [edx]
push ecx
push edx
mov ecx, eax
call fcn.00408420
jmp 0x4067ba
xor eax, eax
test eax, eax
setne dl
mov byte [esp + 0x24], dl
mov dword [esp + 0x28], eax
test eax, eax
mov byte [esp + 0xec], 0xc
je 0x406b05
sub esp, 8
mov byte [esp + 0x2c], 0
mov ecx, esp
mov dword [esp + 0x40], esp
mov byte [ecx], dl
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x3c]
call fcn.00409980
mov edi, dword [esp + 0x34]
mov byte [esp + 0xec], 0
mov ecx, edi
call fcn.00409d80
test eax, eax
je 0x4069cd
mov ecx, edi
call fcn.00409d80
mov edx, dword [esi]
push 0xa
mov dword [esp + 0x40], eax
mov ecx, dword [edx + 4]
add ecx, esi
call fcn.0040ef40
push eax
lea eax, [esp + 0x18]
push eax
push esi
call fcn.0040ff20
mov eax, dword [esp + 0x28]
add esp, 0xc
test eax, eax
jne 0x406b33
mov ecx, dword [esi]
push 0xa
mov ecx, dword [ecx + 4]
add ecx, esi
call fcn.0040ef40
lea edx, [esp + 0x14]
push eax
push edx
push esi
call fcn.0040ff20
mov eax, dword [0x4c6ee0]
mov cl, byte [esp + 0x1f]
add esp, 0xc
mov ebp, dword [eax]
mov byte [esp + 0x48], cl
push 0
lea ecx, [esp + 0x4c]
call fcn.004015d0
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
lea ecx, [esp + 0x50]
call fcn.00402ff0
lea edx, [esp + 0x48]
push 0x3a
lea eax, [esp + 0x88]
push edx
push eax
mov byte [esp + 0xf8], 0xd
call fcn.0040e0d0
add esp, 0xc
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xf0], 0xe
call fcn.0040eef0
test eax, eax
push 1
lea ecx, [esp + 0x88]
setne bl
mov byte [esp + 0xf0], 0xd
call fcn.004015d0
push 1
lea ecx, [esp + 0x4c]
mov byte [esp + 0xf0], 0
call fcn.004015d0
test bl, bl
jne 0x406b53
mov ecx, dword [esi]
push 0xa
mov ecx, dword [ecx + 4]
add ecx, esi
call fcn.0040ef40
lea edx, [esp + 0x14]
push eax
push edx
push esi
call fcn.0040ff20
add esp, 0xc
lea ecx, [esp + 0x14]
call fcn.0040b130
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x406929
xor edi, edi
jmp 0x406930
mov ecx, dword [esp + 0x1c]
lea edi, [eax + ecx]
lea ecx, [esp + 0x14]
call fcn.0040b130
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x40694e
cmp byte [eax], 9
jne 0x406949
mov byte [eax], 0xa
inc eax
cmp eax, edi
jne 0x406941
push 0x18
call fcn.00465d62
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
mov byte [esp + 0xec], 0xf
je 0x406981
mov edx, dword [esp + 0x3c]
lea edi, [esp + 0x14]
push edi
mov ecx, dword [edx + 4]
mov edx, dword [edx]
push ecx
push edx
mov ecx, eax
call fcn.00408420
jmp 0x406983
xor eax, eax
test eax, eax
setne dl
mov byte [esp + 0x58], dl
mov dword [esp + 0x5c], eax
test eax, eax
mov byte [esp + 0xec], 0x10
je 0x406b73
sub esp, 8
lea eax, [esp + 0x60]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
call fcn.0040bec0
mov ecx, dword [esp + 0x3c]
call fcn.00409b40
lea ecx, [esp + 0x58]
mov byte [esp + 0xec], 0
call fcn.0040afa0
lea ecx, [esp + 0x14]
push ecx
push esi
call fcn.0040e0a0
mov eax, dword [esp + 0x24]
add esp, 8
test eax, eax
jne 0x406ba1
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x40]
mov edx, dword [ebp]
add eax, 0x6c
inc ebx
mov dword [esp + 0x40], eax
mov eax, dword [0x4a9498]
shl edx, 4
mov dword [esp + 0x44], ebx
cmp ebx, dword [edx + eax + 8]
jb 0x406390
push 1
lea ecx, [esp + 0x18]
mov dword [esp + 0xf0], 0xffffffff
call fcn.004015d0
mov ecx, dword [esp + 0xe4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xe0
ret 8
lea ecx, [esp + 0x24]
call fcn.0044f4a9
lea ecx, [esp + 0x24]
push 0x4992d8
push ecx
mov dword [esp + 0x2c], vtable.TCampaign::TImportTextFailure.0
call fcn.0044f5c5
lea ecx, [esp + 0x24]
call fcn.0044f4a9
lea edx, [esp + 0x24]
push 0x4992d8
push edx
mov dword [esp + 0x2c], vtable.TCampaign::TImportTextFailure.0
call fcn.0044f5c5
lea ecx, [esp + 0x24]
call fcn.0044f4a9
lea eax, [esp + 0x24]
push 0x4992d8
push eax
mov dword [esp + 0x2c], vtable.TCampaign::TImportTextFailure.0
call fcn.0044f5c5
lea ecx, [esp + 0x24]
call fcn.0044f4a9
lea ecx, [esp + 0x24]
push 0x4992d8
push ecx
mov dword [esp + 0x2c], vtable.TCampaign::TImportTextFailure.0
call fcn.0044f5c5
lea ecx, [esp + 0x24]
call fcn.0044f4a9
lea edx, [esp + 0x24]
push 0x4992d8
push edx
mov dword [esp + 0x2c], vtable.TCampaign::TImportTextFailure.0
call fcn.0044f5c5
lea ecx, [esp + 0x24]
call fcn.0044f4a9
lea eax, [esp + 0x24]
push 0x4992d8
push eax
mov dword [esp + 0x2c], vtable.TCampaign::TImportTextFailure.0
call fcn.0044f5c5
push str.Allocation_failure.
lea ecx, [esp + 0x88]
call fcn.00422510
lea ecx, [esp + 0x84]
push 0x498d18
push ecx
mov dword [esp + 0x8c], vtable.TAllocationFailure.0
call fcn.0044f5c5
lea ecx, [esp + 0x24]
call fcn.0044f4a9
lea edx, [esp + 0x24]
push 0x4992d8
push edx
mov dword [esp + 0x2c], vtable.TCampaign::TImportTextFailure.0
call fcn.0044f5c5
lea ecx, [esp + 0x24]
call fcn.0044f4a9
lea eax, [esp + 0x24]
push 0x4992d8
push eax
mov dword [esp + 0x2c], vtable.TCampaign::TImportTextFailure.0
call fcn.0044f5c5
push str.Allocation_failure.
lea ecx, [esp + 0x88]
call fcn.00422510
lea ecx, [esp + 0x84]
push 0x498d18
push ecx
mov dword [esp + 0x8c], vtable.TAllocationFailure.0
call fcn.0044f5c5
lea ecx, [esp + 0x24]
call fcn.00406bc0
lea edx, [esp + 0x24]
push 0x4992d8
push edx
call fcn.0044f5c5
nop
nop
nop
nop
nop
nop
nop