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

Disassembly:
push 0xffffffffffffffff
push 0x4338d5
mov eax, dword fs:[0]
push eax
sub esp, 0x37c
mov eax, dword [0x44dd94]
xor eax, esp
mov dword [esp + 0x378], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44dd94]
xor eax, esp
push eax
lea eax, [esp + 0x390]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x3a0]
xor ebx, ebx
mov esi, ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ebp
cmp byte [esi + 0x614], bl
je 0x40cce1
add esi, 8
push esi
mov ecx, ebp
call fcn.0040bca0
mov eax, ebp
mov ecx, dword [esp + 0x390]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x378]
xor ecx, esp
call fcn.0041851b
add esp, 0x388
ret 4
lea ecx, [esp + 0x20c]
call fcn.0040b0d0
lea eax, [esp + 0x1f0]
push eax
mov ecx, esi
mov dword [esp + 0x39c], 1
call fcn.0040a3f0
mov byte [esp + 0x398], 2
mov dword [esp + 0x28], ebx
jmp 0x40cd19
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
push ecx
lea edx, [esp + 0x94]
push edx
mov ecx, esi
mov edi, 0x10
mov byte [esp + 0x2e], 0
mov byte [esp + 0x2f], 0
mov byte [esp + 0x2d4], 0
mov byte [esp + 0x38c], 0
call fcn.0040b5d0
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0xb0]
push ecx
mov byte [esp + 0x3a0], 3
call fcn.0040bdb0
add esp, 8
mov edx, dword [esp + 0xac]
mov eax, dword [edx + 4]
lea ecx, [esp + 0xac]
mov byte [esp + 0x398], 4
call eax
test al, al
je 0x40d1bf
nop
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x40cdab
call fcn.00418074
mov eax, dword [esp + 0xd8]
test eax, eax
je 0x40cdaf
mov eax, dword [eax]
jmp 0x40cdb1
xor eax, eax
mov ecx, dword [esp + 0xdc]
cmp ecx, dword [eax + 0x14]
jne 0x40cdc2
call fcn.00418074
mov ebp, dword [esp + 0xdc]
add ebp, 8
cmp byte [esp + 0xb1], 0
sete al
mov byte [esp + 0xb1], al
test al, al
je 0x40d191
cmp dword [ebp + 0x54], 0
je 0x40ce6e
push str._bootmgr
lea esi, [ebp + 0x40]
lea edx, [esp + 0x44]
push esi
push edx
call fcn.00404910
add esp, 0xc
or ebx, 2
mov byte [esp + 0x398], 5
mov dword [esp + 0x20], ebx
cmp dword [eax + 0x18], edi
jb 0x40ce1f
mov eax, dword [eax + 4]
jmp 0x40ce22
add eax, 4
push 0
push eax
call fcn.0041a7ef
add esp, 8
test eax, eax
je 0x40ce67
push str._ntldr
lea eax, [esp + 0x78]
push esi
push eax
call fcn.00404910
or ebx, 4
add esp, 0xc
mov dword [esp + 0x20], ebx
cmp dword [eax + 0x18], edi
jb 0x40ce55
mov eax, dword [eax + 4]
jmp 0x40ce58
add eax, 4
push 0
push eax
call fcn.0041a7ef
add esp, 8
test eax, eax
jne 0x40ce6e
mov byte [esp + 0x1f], 1
jmp 0x40ce73
mov byte [esp + 0x1f], 0
test bl, 4
je 0x40ceb0
and ebx, 0xfffffffb
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x8c], edi
jb 0x40ce95
mov ecx, dword [esp + 0x78]
push ecx
call fcn.00417d54
add esp, 4
mov dword [esp + 0x8c], 0xf
mov dword [esp + 0x88], 0
mov byte [esp + 0x78], 0
mov dword [esp + 0x398], 4
test bl, 2
je 0x40ceda
and ebx, 0xfffffffd
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x58], edi
jb 0x40ceda
mov edx, dword [esp + 0x44]
push edx
call fcn.00417d54
add esp, 4
cmp byte [esp + 0x1f], 0
jne 0x40cfe5
cmp dword [ebp + 0x78], 0
je 0x40cf6e
push 0x435c88
lea esi, [ebp + 0x64]
lea eax, [esp + 0x44]
push esi
push eax
call fcn.00402270
add esp, 0xc
or ebx, 8
cmp dword [eax + 0x18], 8
mov byte [esp + 0x398], 6
mov dword [esp + 0x20], ebx
jb 0x40cf1f
mov eax, dword [eax + 4]
jmp 0x40cf22
add eax, 4
push 0
push eax
call fcn.0041a8ae
add esp, 8
test eax, eax
je 0x40cf67
push 0x435c78
lea ecx, [esp + 0x78]
push esi
push ecx
call fcn.00402270
or ebx, edi
add esp, 0xc
cmp dword [eax + 0x18], 8
mov dword [esp + 0x20], ebx
jb 0x40cf55
mov eax, dword [eax + 4]
jmp 0x40cf58
add eax, 4
push 0
push eax
call fcn.0041a8ae
add esp, 8
test eax, eax
jne 0x40cf6e
mov byte [esp + 0x1f], 1
jmp 0x40cf73
mov byte [esp + 0x1f], 0
test bl, 0x10
je 0x40cfb3
and ebx, 0xffffffef
cmp dword [esp + 0x8c], 8
mov dword [esp + 0x20], ebx
jb 0x40cf96
mov edx, dword [esp + 0x78]
push edx
call fcn.00417d54
add esp, 4
xor eax, eax
mov dword [esp + 0x8c], 7
mov dword [esp + 0x88], 0
mov word [esp + 0x78], ax
mov dword [esp + 0x398], 4
test bl, 8
je 0x40cfde
and ebx, 0xfffffff7
cmp dword [esp + 0x58], 8
mov dword [esp + 0x20], ebx
jb 0x40cfde
mov ecx, dword [esp + 0x44]
push ecx
call fcn.00417d54
add esp, 4
cmp byte [esp + 0x1f], 0
je 0x40cfed
mov byte [esp + 0x384], 1
cmp byte [esp + 0x26], 0
jne 0x40d05c
cmp dword [ebp + 0x54], 0
je 0x40d05c
lea edx, [ebp + 0x40]
push edx
lea eax, [esp + 0x44]
push eax
call fcn.00410f00
mov esi, eax
lea ecx, [esp + 0x1f8]
push ecx
lea edx, [esp + 0x80]
or ebx, 0x20
push edx
mov byte [esp + 0x3a8], 7
mov dword [esp + 0x30], ebx
call fcn.00410f00
mov ecx, dword [esi + 0x14]
or ebx, 0x40
add esp, 0x10
mov dword [esp + 0x20], ebx
cmp dword [esi + 0x18], edi
jb 0x40d045
mov esi, dword [esi + 4]
jmp 0x40d048
add esi, 4
push ecx
push 0
push esi
mov ecx, eax
call fcn.004011f0
mov byte [esp + 0x1f], 1
test eax, eax
je 0x40d061
mov byte [esp + 0x1f], 0
test bl, 0x40
je 0x40d09e
and ebx, 0xffffffbf
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x8c], edi
jb 0x40d083
mov eax, dword [esp + 0x78]
push eax
call fcn.00417d54
add esp, 4
mov dword [esp + 0x8c], 0xf
mov dword [esp + 0x88], 0
mov byte [esp + 0x78], 0
mov dword [esp + 0x398], 4
test bl, 0x20
je 0x40d0c8
and ebx, 0xffffffdf
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x58], edi
jb 0x40d0c8
mov ecx, dword [esp + 0x44]
push ecx
call fcn.00417d54
add esp, 4
cmp byte [esp + 0x1f], 0
je 0x40d137
push 0xffffffffffffffff
push 0
push ebp
lea ecx, [esp + 0x308]
call fcn.004019c0
push 0xffffffffffffffff
lea esi, [ebp + 0x20]
mov ecx, 8
lea edi, [esp + 0x320]
push 0
lea edx, [ebp + 0x40]
rep movsd dword es:[edi], dword [esi]
push edx
lea ecx, [esp + 0x348]
call fcn.004019c0
mov eax, dword [ebp + 0x5c]
push 0xffffffffffffffff
mov dword [esp + 0x35c], eax
mov ecx, dword [ebp + 0x60]
push 0
lea edx, [ebp + 0x64]
mov dword [esp + 0x364], ecx
push edx
lea ecx, [esp + 0x36c]
call fcn.00401aa0
mov byte [esp + 0x26], 1
mov edi, 0x10
cmp byte [esp + 0x27], 0
jne 0x40d16f
cmp byte [ebp + 0x39], 0
je 0x40d16f
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x28]
mov byte [esp + 0x27], 1
test eax, eax
jl 0x40d16f
jg 0x40d159
test ecx, ecx
jbe 0x40d16f
test eax, eax
jg 0x40d16f
jl 0x40d167
cmp ecx, 0x20000000
ja 0x40d16f
mov byte [esp + 0x2cc], 1
cmp byte [esp + 0xb1], 0
mov byte [esp + 0xb0], 1
sete al
mov byte [esp + 0xb1], al
test al, al
jne 0x40cde6
mov eax, dword [esp + 0xac]
mov edx, dword [eax + 8]
lea ecx, [esp + 0xac]
call edx
mov eax, dword [esp + 0xac]
mov edx, dword [eax + 4]
lea ecx, [esp + 0xac]
call edx
test al, al
jne 0x40cd90
mov eax, dword [esp + 0xc8]
mov esi, dword [eax]
mov dword [eax], eax
mov eax, dword [esp + 0xc8]
mov dword [eax + 4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xcc], 0
cmp esi, eax
je 0x40d277
xor ebp, ebp
cmp dword [esi + 0x84], 8
mov edi, dword [esi]
jb 0x40d207
mov eax, dword [esi + 0x70]
push eax
call fcn.00417d54
add esp, 4
xor eax, eax
mov dword [esi + 0x84], 7
mov dword [esi + 0x80], ebp
mov word [esi + 0x70], ax
cmp dword [esi + 0x60], 0x10
jb 0x40d22f
mov eax, dword [esi + 0x4c]
push eax
call fcn.00417d54
add esp, 4
mov dword [esi + 0x60], 0xf
mov dword [esi + 0x5c], ebp
mov byte [esi + 0x4c], 0
cmp dword [esi + 0x20], 0x10
jb 0x40d24f
mov eax, dword [esi + 0xc]
push eax
call fcn.00417d54
add esp, 4
mov dword [esi + 0x20], 0xf
mov dword [esi + 0x1c], ebp
push esi
mov byte [esi + 0xc], 0
call fcn.00417d54
mov eax, dword [esp + 0xcc]
add esp, 4
mov esi, edi
cmp edi, eax
jne 0x40d1f0
push eax
call fcn.00417d54
mov ecx, dword [esp + 0xb8]
xor edi, edi
push ecx
mov dword [esp + 0xd0], edi
call fcn.00417d54
add esp, 8
cmp byte [esp + 0x26], 0
mov dword [esp + 0xac], vtable.TrueCrypt::ForEach::Container.0
jne 0x40d311
lea ecx, [esp + 0x90]
mov byte [esp + 0x398], 2
call fcn.00405ca0
mov edx, dword [esp + 0xa4]
push edx
call fcn.00417d54
mov eax, dword [esp + 0x94]
push eax
mov dword [esp + 0xac], edi
call fcn.00417d54
mov eax, dword [esp + 0x30]
inc eax
add esp, 8
cmp eax, 0x20
mov dword [esp + 0x28], eax
jl 0x40cd15
push 0x448860
lea edx, [esp + 0x34]
push edx
mov dword [esp + 0x38], vtable.TrueCrypt::ParameterIncorrect.0
mov dword [esp + 0x3c], str.TrueCrypt::BootEncryption::GetSystemDriveConfiguration:926
call fcn.004180e9
mov esi, dword [esp + 0x28]
mov dword [esp + 0x244], esi
mov dword [esp + 0x168], 0x435a9c
mov dword [esp + 0x170], 0x435a94
mov dword [esp + method.std::ios_base.virtual_0], vtable.std::basic_ios_char__struct_std::char_traits_char__.0
push edi
lea ecx, [esp + 0x178]
push ecx
or ebx, 0x80
lea ecx, [esp + 0x170]
mov byte [esp + 0x3a0], 8
mov dword [esp + 0x28], ebx
call fcn.004071f0
mov edx, dword [esp + 0x168]
mov eax, dword [edx + 4]
lea ecx, [esp + 0x174]
mov dword [esp + 0x398], 9
mov dword [esp + eax + method.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
call fcn.00403550
mov ebp, vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov dword [esp + 0x174], ebp
mov dword [esp + 0x1b0], edi
mov dword [esp + 0x1b4], edi
push esi
lea ecx, [esp + 0x174]
push str.PhysicalDrive
push ecx
mov byte [esp + 0x3a4], 0xb
call fcn.00407360
add esp, 8
mov ecx, eax
call fcn.00407600
lea edx, [esp + 0x40]
push edx
lea ecx, [esp + 0x16c]
call fcn.00405650
push 0xffffffffffffffff
push edi
push eax
lea ecx, [esp + 0x234]
mov byte [esp + 0x3a4], 0xc
call fcn.004019c0
cmp dword [esp + 0x58], 0x10
jb 0x40d40c
mov eax, dword [esp + 0x44]
push eax
call fcn.00417d54
add esp, 4
mov dword [esp + 0xe0], 0x435a9c
mov dword [esp + 0xe8], 0x435a94
mov dword [esp + method.std::ios_base.virtual_0], vtable.std::basic_ios_char__struct_std::char_traits_char__.0
push edi
lea ecx, [esp + 0xf0]
push ecx
or ebx, 0x100
lea ecx, [esp + 0xe8]
mov byte [esp + 0x3a0], 0xd
mov dword [esp + 0x28], ebx
call fcn.004071f0
mov edx, dword [esp + 0xe0]
mov eax, dword [edx + 4]
lea ecx, [esp + 0xec]
mov dword [esp + 0x398], 0xe
mov dword [esp + eax + 0xe0], vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
call fcn.00403550
mov dword [esp + 0xec], ebp
mov dword [esp + 0x128], edi
mov dword [esp + 0x12c], edi
push str.Partition0
push esi
lea ecx, [esp + 0xf0]
push str.DeviceHarddisk
push ecx
mov byte [esp + 0x3a8], 0x10
call fcn.00407360
add esp, 8
mov ecx, eax
call fcn.00407600
push eax
call fcn.00407360
add esp, 8
lea edx, [esp + 0x40]
push edx
lea ecx, [esp + 0xe4]
call fcn.00405650
push 0xffffffffffffffff
push edi
push eax
lea ecx, [esp + 0x218]
mov byte [esp + 0x3a4], 0x11
call fcn.004019c0
cmp dword [esp + 0x58], 0x10
mov byte [esp + 0x398], 0x10
jb 0x40d50d
mov eax, dword [esp + 0x44]
push eax
call fcn.00417d54
add esp, 4
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0xa4]
mov ebp, dword [ecx]
cmp eax, edi
jne 0x40d528
call fcn.00418074
jmp 0x40d52a
mov edi, dword [eax]
cmp ebp, dword [edi + 0x14]
jne 0x40d534
call fcn.00418074
push 0xffffffffffffffff
push 0
add ebp, 8
push ebp
lea ecx, [esp + 0x258]
call fcn.004019c0
push 0xffffffffffffffff
lea esi, [ebp + 0x20]
mov ecx, 8
lea edi, [esp + 0x270]
push 0
lea edx, [ebp + 0x40]
rep movsd dword es:[edi], dword [esi]
push edx
lea ecx, [esp + 0x298]
call fcn.004019c0
mov eax, dword [ebp + 0x5c]
push 0xffffffffffffffff
mov dword [esp + 0x2ac], eax
mov ecx, dword [ebp + 0x60]
push 0
mov dword [esp + 0x2b4], ecx
add ebp, 0x64
push ebp
lea ecx, [esp + 0x2bc]
call fcn.00401aa0
mov edx, dword [esp + 0xa4]
mov eax, dword [edx]
mov ecx, dword [esp + 0x90]
push eax
push ecx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x9c]
call fcn.0040a9b0
mov eax, dword [esp + 0xa4]
mov edx, dword [eax]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2f0]
mov esi, dword [eax]
mov dword [eax], eax
mov eax, dword [esp + 0x2f0]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x2f0]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2f4], 0
cmp esi, eax
je 0x40d690
xor ebp, ebp
cmp dword [esi + 0x84], 8
mov edi, dword [esi]
jb 0x40d620
mov eax, dword [esi + 0x70]
push eax
call fcn.00417d54
add esp, 4
xor eax, eax
mov dword [esi + 0x84], 7
mov dword [esi + 0x80], ebp
mov word [esi + 0x70], ax
cmp dword [esi + 0x60], 0x10
jb 0x40d648
mov eax, dword [esi + 0x4c]
push eax
call fcn.00417d54
add esp, 4
mov dword [esi + 0x60], 0xf
mov dword [esi + 0x5c], ebp
mov byte [esi + 0x4c], 0
cmp dword [esi + 0x20], 0x10
jb 0x40d668
mov eax, dword [esi + 0xc]
push eax
call fcn.00417d54
add esp, 4
mov dword [esi + 0x20], 0xf
mov dword [esi + 0x1c], ebp
push esi
mov byte [esi + 0xc], 0
call fcn.00417d54
mov eax, dword [esp + 0x2f4]
add esp, 4
mov esi, edi
cmp edi, eax
jne 0x40d609
mov edx, dword [esp + 0x3c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x2dc]
push edx
mov edx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x40]
push edx
push eax
push ecx
lea ecx, [esp + 0x2f8]
call fcn.0040abc0
mov eax, dword [esp + 0x274]
mov ecx, dword [esp + 0x278]
lea edx, [esp + 0x2dc]
mov dword [esp + 0x37c], eax
push edx
lea eax, [esp + 0x44]
push eax
mov dword [esp + 0x2dc], 0xffffffff
mov dword [esp + 0x2e0], SysStringLen
mov dword [esp + 0x388], ecx
call fcn.0040bdb0
add esp, 8
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 4]
lea ecx, [esp + 0x40]
mov byte [esp + 0x398], 0x12
call eax
test al, al
je 0x40d7da
mov eax, dword [esp + 0x6c]
test eax, eax
jne 0x40d739
call fcn.00418074
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x40d73d
mov ecx, dword [eax]
jmp 0x40d73f
xor ecx, ecx
mov eax, dword [esp + 0x70]
cmp eax, dword [ecx + 0x14]
jne 0x40d751
call fcn.00418074
mov eax, dword [esp + 0x70]
cmp byte [esp + 0x45], 0
sete cl
mov byte [esp + 0x45], cl
test cl, cl
je 0x40d7b8
mov edi, dword [esp + 0x2d8]
mov ebp, dword [esp + 0x2d4]
nop
mov edx, dword [eax + 0x2c]
cmp edx, edi
mov esi, dword [eax + 0x28]
jg 0x40d792
jl 0x40d780
cmp esi, ebp
jae 0x40d792
mov ebp, esi
mov edi, edx
mov dword [esp + 0x2d4], ebp
mov dword [esp + 0x2d8], edi
mov edx, dword [eax + 0x30]
sub dword [esp + 0x37c], edx
mov edx, dword [eax + 0x34]
mov byte [esp + 0x44], 1
sbb dword [esp + 0x380], edx
test cl, cl
sete cl
mov byte [esp + 0x45], cl
test cl, cl
jne 0x40d770
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 8]
lea ecx, [esp + 0x40]
call edx
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 4]
lea ecx, [esp + 0x40]
call edx
test al, al
jne 0x40d724
mov eax, dword [esp + 0x5c]
mov esi, dword [eax]
mov dword [eax], eax
mov eax, dword [esp + 0x5c]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x5c]
xor ebp, ebp
mov byte [esp + 0x398], 0x10
mov dword [esp + 0x60], ebp
cmp esi, eax
je 0x40d883
cmp dword [esi + 0x84], 8
mov edi, dword [esi]
jb 0x40d81a
mov eax, dword [esi + 0x70]
push eax
call fcn.00417d54
add esp, 4
xor eax, eax
mov dword [esi + 0x84], 7
mov dword [esi + 0x80], ebp
mov word [esi + 0x70], ax
cmp dword [esi + 0x60], 0x10
jb 0x40d842
mov eax, dword [esi + 0x4c]
push eax
call fcn.00417d54
add esp, 4
mov dword [esi + 0x60], 0xf
mov dword [esi + 0x5c], ebp
mov byte [esi + 0x4c], 0
cmp dword [esi + 0x20], 0x10
jb 0x40d862
mov eax, dword [esi + 0xc]
push eax
call fcn.00417d54
add esp, 4
mov dword [esi + 0x20], 0xf
mov dword [esi + 0x1c], ebp
push esi
mov byte [esi + 0xc], 0
call fcn.00417d54
mov eax, dword [esp + 0x60]
add esp, 4
mov esi, edi
cmp edi, eax
jne 0x40d803
push eax
call fcn.00417d54
mov ecx, dword [esp + 0x4c]
push ecx
mov dword [esp + 0x64], ebp
call fcn.00417d54
mov edi, dword [esp + 0x40]
add esp, 8
lea edx, [esp + 0x20c]
lea esi, [edi + 8]
push edx
mov ecx, esi
mov dword [esp + 0x44], vtable.TrueCrypt::ForEach::Container.0
call fcn.0040bf60
mov byte [edi + 0x614], 1
mov edi, dword [esp + 0x3c]
push esi
mov ecx, edi
call fcn.0040bca0
or ebx, 1
lea ecx, [esp + 0x134]
mov dword [esp + 0x20], ebx
mov byte [esp + 0x398], 0xb
call fcn.00403a50
lea eax, [esp + 0x134]
mov esi, vtable.std::ios_base.0
push eax
mov dword [esp + 0x138], esi
call fcn.0041756e
add esp, 4
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x398], 3
call fcn.00403a50
lea ecx, [esp + 0x1bc]
push ecx
mov dword [esp + 0x1c0], esi
call fcn.0041756e
add esp, 4
lea ecx, [esp + 0x90]
call fcn.00405ca0
mov edx, dword [esp + 0xa4]
push edx
call fcn.00417d54
mov eax, dword [esp + 0x94]
push eax
mov dword [esp + 0xac], ebp
call fcn.00417d54
add esp, 8
cmp dword [esp + 0x208], 0x10
jb 0x40d977
mov ecx, dword [esp + 0x1f4]
push ecx
call fcn.00417d54
add esp, 4
lea ecx, [esp + 0x20c]
mov dword [esp + 0x208], 0xf
mov dword [esp + 0x204], ebp
mov byte [esp + 0x1f4], 0
call fcn.00407570
mov eax, edi
jmp 0x40ccb7