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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x506573
mov eax, dword fs:[0]
push eax
sub esp, 0x1d8
mov eax, dword [0x543f30]
xor eax, esp
mov dword [esp + 0x1d0], eax
push ebx
push esi
push edi
mov eax, dword [0x543f30]
xor eax, esp
push eax
lea eax, [esp + 0x1e8]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
and eax, 0xff000000
mov esi, edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x48], esi
cmp eax, 0x5000000
je 0x4387fd
cmp eax, 0x7000000
je 0x4387d6
cmp eax, 0x8000000
je 0x43871a
cmp eax, 0x9000000
je 0x4386ba
cmp eax, 0xa000000
jne 0x4386b3
mov edi, dword [sym.imp.msi.dll_MsiRecordReadStream]
push 1
push esi
call edi
cmp eax, 0x80000000
je 0x4386a6
push 1
push esi
call edi
xor ebx, ebx
cmp eax, ebx
jne 0x43865a
push 2
push esi
call edi
mov dword [0x55a108], eax
mov dword [0x55a10c], ebx
jmp 0x438683
cmp eax, 1
jne 0x438674
push 3
push esi
call edi
test eax, eax
je 0x438683
push 2
push esi
call edi
mov dword [0x55a110], eax
jmp 0x438683
cmp eax, 2
jne 0x438683
push eax
push esi
call edi
add dword [0x55a10c], eax
fild dword [0x55a10c]
mov eax, dword [esp + 0x18]
push ecx
push ecx
fidiv dword [0x55a108]
mov ecx, dword [eax + 0x28]
fmul qword [0x51ef08]
fstp qword [esp]
call fcn.0043cde9
call fcn.004c2a60
test al, al
jne 0x438dbb
xor eax, eax
jmp 0x438dbe
push esi
call dword [sym.imp.msi.dll_MsiRecordIsNull]
push 0
mov edi, eax
inc edi
pop ebx
mov dword [esp + 0x18], ebx
je 0x4386fb
push dword [esp + 0x18]
lea eax, [esp + 0x11c]
push esi
push eax
call fcn.0043b506
add esp, 0xc
push ebx
push 1
lea ecx, [esp + 0x120]
call fcn.00401512
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jb 0x4386cd
mov eax, dword [0x55a110]
add dword [0x55a10c], eax
call fcn.004c2a60
xor ecx, ecx
test al, al
setne cl
lea eax, [ecx + 1]
jmp 0x438dbe
push esi
call dword [sym.imp.msi.dll_MsiRecordIsNull]
push 0
mov edi, eax
inc edi
pop ebx
mov dword [esp + 0x1c], ebx
je 0x43875b
push dword [esp + 0x1c]
lea eax, [esp + 0x174]
push esi
push eax
call fcn.0043b506
add esp, 0xc
push ebx
push 1
lea ecx, [esp + 0x178]
call fcn.00401512
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jb 0x43872d
push 2
lea eax, [esp + 0x100]
push esi
push eax
mov dword [0x55a110], ebx
call fcn.0043b506
add esp, 0xc
mov dword [esp + 0x1f0], 0x10
cmp dword [esp + 0x10c], ebx
je 0x43879c
lea eax, [esp + 0xfc]
push eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x68]
call fcn.004359d7
fild dword [0x55a10c]
mov eax, dword [esp + 0x18]
push ecx
push ecx
fidiv dword [0x55a108]
mov ecx, dword [eax + 0x28]
fmul qword [0x51ef08]
fstp qword [esp]
call fcn.0043cde9
push ebx
push 1
lea ecx, [esp + 0x104]
call fcn.00401512
xor eax, eax
inc eax
jmp 0x438dbe
lea eax, [esp + 0x16]
push eax
mov eax, ecx
mov ecx, dword [eax + 8]
xor ebx, ebx
mov byte [esp + 0x1a], bl
call fcn.0043d3a4
xor eax, eax
cmp byte [esp + 0x16], bl
setne al
lea eax, [eax + eax + 2]
jmp 0x438dbe
push esi
call dword [sym.imp.msi.dll_MsiRecordIsNull]
xor ebx, ebx
mov dword [esp + 0x38], eax
xor edi, edi
push edi
lea eax, [esp + 0x100]
push esi
push eax
call fcn.0043b506
add esp, 0xc
push ebx
push 1
lea ecx, [esp + 0x104]
call fcn.00401512
inc edi
cmp edi, dword [esp + 0x38]
jbe 0x43880c
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1f0], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
push ebx
push 0x51de1c
lea ecx, [esp + 0x38]
mov byte [esp + 0x1f8], 1
call fcn.0043d33c
push 2
pop edi
mov byte [esp + 0x1f0], 2
mov dword [esp + 0x3c], edi
cmp dword [esp + 0x38], edi
jb 0x438c45
push edi
lea eax, [esp + 0x100]
push esi
push eax
call fcn.0043b506
add esp, 0xc
mov ecx, dword [esp + 0x10c]
cmp ecx, ebx
je 0x438c19
xor eax, eax
mov dword [esp + 0x134], ebx
mov dword [esp + 0x14c], 7
mov dword [esp + 0x148], ebx
mov word [esp + 0x138], ax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov byte [esp + 0x68], bl
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov byte [esp + 0x78], 1
mov byte [esp + 0x1f0], 5
cmp dword [esp + 0x110], 8
mov eax, dword [esp + 0xfc]
jae 0x438910
lea eax, [esp + 0xfc]
cmp dword [esp + 0x110], 8
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0xfc]
jae 0x43892b
lea ecx, [esp + 0xfc]
push ecx
push ebx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
lea ecx, [esp + 0x94]
call fcn.0044458c
lea ecx, [esp + 0x7c]
mov byte [esp + 0x1f0], 6
call fcn.004e6900
mov byte [esp + 0x17], al
lea ecx, [esp + 0xdc]
mov byte [esp + 0x1f0], 8
call fcn.00444a0a
mov eax, dword [esp + 0xc4]
cmp eax, ebx
je 0x438982
mov ecx, dword [esp + 0xc0]
mov dword [ecx], eax
mov byte [esp + 0x1f0], 5
push dword [esp + 0x80]
call fcn.00445ec4
pop ecx
cmp byte [esp + 0x17], bl
je 0x438b11
push 2
lea ecx, [esp + 0x50]
call fcn.0043abf6
push eax
lea ecx, [esp + 0x190]
call fcn.00441cf3
mov byte [esp + 0x1f0], 9
xor eax, eax
push 0xffffffffffffffff
mov word [esp + 0x158], ax
push ebx
lea eax, [esp + 0x194]
push eax
lea ecx, [esp + 0x160]
mov dword [esp + 0x174], 7
mov dword [esp + 0x170], ebx
call fcn.00401450
mov byte [esp + 0x1f0], 0xa
cmp dword [esp + 0x168], 8
mov eax, dword [esp + 0x154]
jae 0x438a14
lea eax, [esp + 0x154]
mov ecx, dword [esp + 0x164]
lea edi, [eax + ecx*2]
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], edi
mov esi, eax
cmp eax, edi
je 0x438ca7
movzx ecx, word [eax]
push 0x2d
pop edx
cmp dx, cx
sete byte [esp + 0x16]
cmp byte [esp + 0x16], bl
jne 0x438a52
push 0x2b
pop edx
cmp dx, cx
jne 0x438a55
lea esi, [eax + 2]
lea eax, [esp + 0x1c]
mov dword [esp + 0x128], edi
lea edi, [esp + 0x118]
mov byte [esp + 0x118], bl
mov dword [esp + 0x11c], 1
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], esi
call fcn.004463d9
cmp byte [esp + 0x16], bl
je 0x438a96
neg dword [esp + 0x1c]
cmp al, bl
je 0x438ca7
mov eax, dword [esp + 0x1c]
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [esp + 0x15c]
mov dword [esp + 0x13c], eax
call fcn.00401512
push ebx
push esi
lea ecx, [esp + 0x194]
mov byte [esp + 0x1f8], 5
call fcn.00401512
push esi
lea ecx, [esp + 0x50]
call fcn.0043abf6
push eax
lea ecx, [esp + 0x1ac]
call fcn.00441cf3
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x1b0]
push eax
lea ecx, [esp + 0x144]
mov byte [esp + 0x1fc], 0xc
call fcn.00401450
push ebx
push esi
lea ecx, [esp + 0x1b0]
jmp 0x438b4a
dec edi
push edi
lea eax, [esp + 0x1c8]
push esi
push eax
mov dword [esp + 0x140], ebx
call fcn.0043b506
add esp, 0xc
push eax
lea ecx, [esp + 0x13c]
mov byte [esp + 0x1f4], 0xd
call fcn.00409a66
push ebx
push 1
lea ecx, [esp + 0x1cc]
mov byte [esp + 0x1f8], 5
call fcn.00401512
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x134]
cmp ecx, eax
jae 0x438baa
cmp dword [esp + 0x20], ecx
ja 0x438baa
mov edi, ecx
sub edi, dword [esp + 0x20]
cmp eax, dword [esp + 0x28]
jne 0x438b85
lea edx, [esp + 0x20]
call fcn.0043dbc0
mov eax, dword [esp + 0x24]
and edi, 0xffffffe0
add edi, dword [esp + 0x20]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov byte [esp + 0x1f0], 0xe
cmp eax, ebx
je 0x438bee
mov ecx, dword [edi]
add edi, 4
mov dword [eax], ecx
push edi
jmp 0x438be2
cmp eax, dword [esp + 0x28]
jne 0x438bbd
lea edx, [esp + 0x20]
call fcn.0043dbc0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov byte [esp + 0x1f0], 0xf
cmp eax, ebx
je 0x438bee
mov ecx, dword [esp + 0x134]
mov dword [eax], ecx
lea ecx, [esp + 0x138]
push ecx
lea ecx, [eax + 4]
call fcn.004057b6
mov eax, dword [esp + 0x24]
add eax, 0x20
lea ecx, [esp + 0x4c]
mov dword [esp + 0x24], eax
mov byte [esp + 0x1f0], 4
call fcn.0043abc8
push ebx
push 1
lea ecx, [esp + 0x140]
call fcn.00401512
mov esi, dword [esp + 0x48]
push ebx
push 1
lea ecx, [esp + 0x104]
mov byte [esp + 0x1f8], 2
call fcn.00401512
mov edi, dword [esp + 0x3c]
add edi, 2
mov dword [esp + 0x3c], edi
cmp edi, dword [esp + 0x38]
jbe 0x43887f
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x20]
test eax, 0xffffffe0
je 0x438d7d
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x58]
lea eax, [esp + 0x17]
push eax
lea eax, [esp + 0x1a]
push eax
lea edx, [esp + 0x28]
mov byte [esp + 0x1e], 1
mov byte [esp + 0x1f], bl
call fcn.0043f214
mov byte [esp + 0x1f0], bl
mov ecx, dword [esp + 0x34]
cmp byte [esp + 0x16], bl
je 0x438d11
cmp ecx, ebx
je 0x438c99
call fcn.00402ea5
mov edi, dword [esp + 0x20]
cmp edi, ebx
je 0x438d0a
mov esi, dword [esp + 0x24]
jmp 0x438cfc
push str.bad_cast
lea ecx, [esp + 0x11c]
call fcn.0049d29a
mov dword [esp + method.boost::bad_lexical_cast.virtual_0], vtable.boost::bad_lexical_cast.0
mov dword [esp + vtable.type_info.0], 0x54bba0
mov dword [esp + vtable.type_info.0], 0x54bb90
lea eax, [esp + 0x118]
push eax
mov byte [esp + 0x1f4], 0xb
call fcn.004157b4
push ebx
push 1
lea ecx, [edi + 4]
call fcn.00401512
add edi, 0x20
cmp edi, esi
jne 0x438cee
push dword [esp + 0x20]
call fcn.0049d71c
pop ecx
push 4
jmp 0x438dbd
cmp byte [esp + 0x17], bl
je 0x438d46
cmp ecx, ebx
je 0x438d20
call fcn.00402ea5
mov edi, dword [esp + 0x20]
cmp edi, ebx
je 0x438dbb
mov esi, dword [esp + 0x24]
jmp 0x438d40
push ebx
push 1
lea ecx, [edi + 4]
call fcn.00401512
add edi, 0x20
cmp edi, esi
jne 0x438d32
jmp 0x438db1
cmp ecx, ebx
je 0x438d4f
call fcn.00402ea5
mov edi, dword [esp + 0x20]
cmp edi, ebx
je 0x438d79
mov esi, dword [esp + 0x24]
jmp 0x438d6b
push ebx
push 1
lea ecx, [edi + 4]
call fcn.00401512
add edi, 0x20
cmp edi, esi
jne 0x438d5d
push dword [esp + 0x20]
call fcn.0049d71c
pop ecx
push 5
jmp 0x438dbd
mov byte [esp + 0x1f0], bl
mov ecx, dword [esp + 0x34]
cmp ecx, ebx
je 0x438d91
call fcn.00402ea5
mov edi, dword [esp + 0x20]
cmp edi, ebx
je 0x438dbb
mov esi, dword [esp + 0x24]
jmp 0x438dad
push ebx
push 1
lea ecx, [edi + 4]
call fcn.00401512
add edi, 0x20
cmp edi, esi
jne 0x438d9f
push dword [esp + 0x20]
call fcn.0049d71c
pop ecx
push 2
pop eax
mov ecx, dword [esp + 0x1e8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1d0]
xor ecx, esp
call fcn.0049d196
mov esp, ebp
pop ebp
ret 4