Function at 0x46a380
Capabilities:
Access peb ldr_data
Get ntdll base address
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x478470
mov eax, dword fs:[0]
push eax
sub esp, 0x70
push ebx
push esi
push edi
mov eax, dword [0x496028]
xor eax, esp
push eax
lea eax, [esp + 0x80]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x50], edi
fldz
xor esi, esi
lea eax, [esp + 0x5c]
fstp dword [esp + 0x30]
push eax
mov dword [edi + 0x60], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x38], esi
mov byte [esp + 0x14], 1
call fcn.0046e540
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x88], esi
and eax, 0xc0000000
mov dword [esp + 0x40], eax
or eax, 0xffffffff
mov dword [edi + 0x4c], eax
mov dword [edi + 0x48], eax
mov dword [edi + 0x44], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0x5c], eax
mov dword [edi + 0x58], eax
mov dword [edi + 0x54], eax
mov dword [edi + 0x50], eax
mov eax, dword [edi + 0x20]
mov ebx, dword [eax]
and ecx, 0xc0000000
mov dword [esp + 0x44], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x3c], esi
mov esi, dword [edi + 0xc]
cmp ecx, 0x40000000
mov dword [esp + 0x48], ecx
mov byte [esp + 0x13], 0
sete byte [esp + 0x12]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], esi
mov ecx, dword [edi + 0x20]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x58], ecx
test esi, esi
je 0x46a458
cmp esi, eax
je 0x46a45e
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp ebx, dword [esp + 0x58]
je 0x46a700
test esi, esi
jne 0x46a4d2
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp ebx, dword [esi + 0x14]
jne 0x46a47d
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ebx, dword [ebx + 8]
mov dword [esp + 0x20], ebx
test ebx, ebx
je 0x46a6cc
mov edx, ebx
mov esi, dword [edx + 4]
cmp dword [esi + 4], 0
je 0x46a6cc
mov eax, ebx
mov eax, dword [eax + 0x30]
test eax, eax
je 0x46a4b1
call fcn.00468690
test eax, eax
je 0x46a6cc
cmp dword [esi + 0x10], 0
fld dword [esi + 0x4c]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fldz
jne 0x46a4d6
fcom dword [esi + 0x4c]
fnstsw ax
test ah, 5
jp 0x46a4d6
mov bl, 1
jmp 0x46a4d8
mov esi, dword [esi]
jmp 0x46a472
xor bl, bl
cmp dword [esp + 0x48], 0x40000000
jne 0x46a59a
test bl, bl
je 0x46a5a5
fcomp dword [esi + 0x4c]
fnstsw ax
test ah, 5
jp 0x46a555
lea eax, [esi + 0x50]
push eax
lea ebx, [esp + 0x60]
call fcn.0046dcc0
fld dword [esi + 0x4c]
fadd dword [eax]
fstp dword [eax]
lea eax, [esi + 0x50]
push eax
call fcn.0046dcc0
mov ecx, dword [esi + 0x18]
add dword [eax + 4], ecx
add eax, 4
lea eax, [esi + 0x50]
push eax
call fcn.0046dcc0
mov edx, dword [esi + 0x20]
add dword [eax + 8], edx
add eax, 8
mov eax, dword [esi + 0x18]
add dword [esp + 0x44], eax
mov eax, dword [esi + 0x20]
mov ecx, Ordinal_3
sub ecx, eax
cmp ecx, dword [esp + 0x24]
jle 0x46a54d
add dword [esp + 0x24], eax
jmp 0x46a555
mov dword [esp + 0x24], SysStringLen
cmp byte [esp + 0x12], 0
je 0x46a567
mov edx, dword [esi + 0x40]
add edx, dword [esi + 0x38]
add dword [edi + 0x60], edx
jmp 0x46a57b
mov ecx, dword [esi + 0x40]
add ecx, dword [esi + 0x38]
mov eax, dword [edi + 0x60]
add ecx, eax
cmp eax, ecx
jg 0x46a578
mov eax, ecx
mov dword [edi + 0x60], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
mov edx, dword [edx + 0x20]
and eax, 0x3fffffff
push eax
mov eax, dword [ebp + 8]
and eax, 0x3fffffff
push eax
call edx
jmp 0x46a616
test bl, bl
je 0x46a5a5
mov dword [esi + 0x10], 0xffffffff
fcomp dword [esp + 0x30]
fnstsw ax
test ah, 0x44
jp 0x46a5b5
mov eax, dword [edi + 0x60]
jmp 0x46a5b7
xor eax, eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push 0
push ecx
push eax
mov eax, dword [esp + 0x2c]
push edx
push eax
mov eax, edi
call fcn.00469470
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0x14]
and eax, 0xffffff
test bl, bl
je 0x46a5ec
add dword [esp + 0x3c], eax
mov dword [esi + 0x10], 0
cmp byte [esp + 0x12], 0
je 0x46a600
mov ecx, dword [esi + 0x40]
add ecx, dword [esi + 0x38]
add ecx, eax
add dword [edi + 0x60], ecx
jmp 0x46a616
mov edx, dword [esi + 0x40]
add edx, dword [esi + 0x38]
mov ecx, dword [edi + 0x60]
add edx, ecx
add eax, edx
cmp ecx, eax
jle 0x46a613
mov eax, ecx
mov dword [edi + 0x60], eax
cmp dword [esp + 0x40], 0x40000000
mov byte [esp + 0x11], 0
je 0x46a635
cmp dword [esi + 0x14], 0xfffffffe
jne 0x46a635
mov byte [esp + 0x13], 1
mov byte [esp + 0x11], 1
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
movsx ebx, word [eax + 0x1a]
mov ecx, dword [eax + 0x18]
mov edx, dword [esi + 0x44]
mov eax, dword [eax + 0x14]
add edx, dword [esi + 0x3c]
and ebx, 0xffffff00
and eax, 0xff000000
and ecx, 0xffffff
or ebx, eax
or dword [esp + 0x1c], ebx
add ecx, edx
cmp dword [esp + 0x14], ecx
jg 0x46a66f
mov dword [esp + 0x14], ecx
cmp byte [esp + 0x10], 0
je 0x46a681
cmp dword [esi + 0x14], 0xfffffffe
mov byte [esp + 0x10], 1
je 0x46a686
mov byte [esp + 0x10], 0
fldz
mov bl, byte [esp + 0x11]
fcomp dword [esi + 0x4c]
fnstsw ax
test ah, 5
mov eax, edx
jp 0x46a6b4
test bl, bl
jne 0x46a69e
mov eax, ecx
cmp dword [esp + 0x34], eax
jg 0x46a6cc
test bl, bl
je 0x46a6ae
mov dword [esp + 0x34], edx
jmp 0x46a6cc
mov dword [esp + 0x34], ecx
jmp 0x46a6cc
test bl, bl
jne 0x46a6ba
mov eax, ecx
cmp dword [esp + 0x18], eax
jg 0x46a6cc
mov dword [esp + 0x18], edx
test bl, bl
jne 0x46a6cc
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x46a6fc
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov esi, dword [esp + 0x2c]
cmp esi, dword [eax + 0x14]
jne 0x46a6eb
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esi]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
mov ebx, ecx
jmp 0x46a446
mov eax, dword [eax]
jmp 0x46a6dc
mov ecx, dword [edi + 0x44]
or eax, 0xffffffff
cmp ecx, eax
jne 0x46a71d
cmp dword [edi + 0x40], eax
jne 0x46a71d
cmp dword [edi + 0x48], eax
jne 0x46a71d
cmp dword [edi + 0x4c], eax
je 0x46a7b6
mov eax, dword [edi + 0x48]
cmp ecx, eax
mov edx, ecx
jg 0x46a728
mov edx, eax
mov ebx, dword [edi + 0x40]
cmp ebx, edx
jle 0x46a733
mov edx, ebx
jmp 0x46a73b
cmp ecx, eax
mov edx, ecx
jg 0x46a73b
mov edx, eax
mov esi, dword [edi + 0x4c]
cmp esi, edx
jle 0x46a748
mov dword [esp + 0x28], esi
jmp 0x46a766
cmp ecx, eax
mov edx, ecx
jg 0x46a750
mov edx, eax
cmp ebx, edx
jle 0x46a75a
mov dword [esp + 0x28], ebx
jmp 0x46a766
cmp ecx, eax
mov dword [esp + 0x28], ecx
jg 0x46a766
mov dword [esp + 0x28], eax
mov ecx, dword [edi + 0x54]
mov edx, dword [edi + 0x58]
cmp ecx, edx
mov eax, ecx
jg 0x46a774
mov eax, edx
mov ebx, dword [edi + 0x50]
cmp ebx, eax
jle 0x46a77f
mov esi, ebx
jmp 0x46a787
cmp ecx, edx
mov esi, ecx
jg 0x46a787
mov esi, edx
mov eax, dword [edi + 0x5c]
cmp eax, esi
jg 0x46a7a6
cmp ecx, edx
mov eax, ecx
jg 0x46a796
mov eax, edx
cmp ebx, eax
jle 0x46a79e
mov eax, ebx
jmp 0x46a7a6
cmp ecx, edx
mov eax, ecx
jg 0x46a7a6
mov eax, edx
mov edx, dword [esp + 0x28]
add eax, edx
cmp dword [esp + 0x14], eax
jg 0x46a7b6
mov dword [esp + 0x14], eax
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x30]
add ecx, dword [eax + 0x28]
mov edx, dword [edi]
add dword [edi + 0x60], ecx
mov eax, dword [edx + 0x18]
mov esi, dword [edi + 0x60]
mov ecx, edi
call eax
cmp esi, eax
jg 0x46a7dd
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
mov esi, eax
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x48]
and eax, 0x3fffffff
cmp ecx, 0x80000000
je 0x46a7ff
cmp ecx, 0x40000000
jne 0x46a80e
mov dword [esp + 0x28], eax
jmp 0x46a812
cmp eax, esi
jge 0x46a80e
or eax, 0x1000000
mov dword [esp + 0x28], eax
jmp 0x46a812
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x28]
fldz
fld dword [esp + 0x30]
and eax, 0xffffff
sub eax, dword [edi + 0x60]
fcom st(1)
add eax, dword [esp + 0x3c]
mov ecx, eax
fnstsw ax
mov dword [esp + 0x3c], ecx
fstp st(1)
test ah, 0x41
je 0x46a856
mov eax, dword [esp + 0x34]
fstp st(0)
cmp dword [esp + 0x18], eax
mov esi, dword [esp + 0x1c]
jg 0x46acd7
mov dword [esp + 0x18], eax
jmp 0x46acd7
or eax, 0xffffffff
fstp dword [esp + 0x30]
mov dword [edi + 0x4c], eax
mov dword [edi + 0x48], eax
mov dword [edi + 0x44], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0x5c], eax
mov dword [edi + 0x58], eax
mov dword [edi + 0x54], eax
mov dword [edi + 0x50], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x78]
cmp eax, 1
jbe 0x46a98c
cmp ecx, dword [esp + 0x24]
jl 0x46a89d
mov dword [esp + 0x20], 0x8000000
jmp 0x46a9bc
sub ecx, dword [esp + 0x44]
mov dword [esp + 0x34], ecx
test ecx, ecx
jle 0x46a9bc
mov ecx, dword [esp + 0x74]
mov ebx, dword [ecx]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], esi
nop
mov edx, dword [esp + 0x74]
mov dword [esp + 0x58], edx
test esi, esi
je 0x46a8d2
cmp esi, dword [esp + 0x5c]
je 0x46a8d8
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp ebx, dword [esp + 0x58]
je 0x46a95a
test esi, esi
jne 0x46a94e
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp ebx, dword [eax + 0x18]
jne 0x46a8f5
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x20], eax
test esi, esi
jne 0x46a952
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp ebx, dword [eax + 0x18]
jne 0x46a913
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
test esi, esi
jne 0x46a956
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp ebx, dword [esi + 0x18]
jne 0x46a928
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [ebx + 0x18]
sub eax, dword [ebx + 0x14]
cmp eax, dword [esp + 0x34]
jge 0x46a95a
sub dword [esp + 0x34], eax
lea esi, [esp + 0x48]
call fcn.0046ff90
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
jmp 0x46a8c0
mov eax, dword [esi]
jmp 0x46a8ea
mov eax, dword [esi]
jmp 0x46a908
mov esi, dword [esi]
jmp 0x46a91d
cmp dword [esp + 0x20], 0xffffffff
je 0x46a9bc
lea ecx, [esp + 0x20]
push ecx
lea ebx, [esp + 0x60]
call fcn.0046dcc0
mov eax, dword [eax + 4]
add eax, dword [esp + 0x34]
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x40], eax
call fcn.0046dcc0
fld dword [eax]
fstp dword [esp + 0x30]
jmp 0x46a9bc
test eax, eax
je 0x46a9bc
mov eax, dword [esp + 0x74]
mov esi, dword [eax]
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x46aa9a
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp esi, dword [eax + 0x18]
jne 0x46a9b5
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x20], ecx
mov dword [edi + 0x60], 0
mov eax, dword [edi + 0x20]
mov edx, dword [eax]
mov esi, dword [edi + 0xc]
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], esi
mov ebx, dword [edi + 0x20]
mov eax, dword [edi + 0xc]
test esi, esi
je 0x46a9e1
cmp esi, eax
je 0x46a9e7
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x38], ebx
je 0x46ac10
test esi, esi
jne 0x46aaa1
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x38]
cmp eax, dword [esi + 0x14]
jne 0x46aa0e
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x38]
mov ebx, dword [ecx + 8]
test ebx, ebx
je 0x46abda
mov esi, dword [ebx + 4]
cmp dword [esi + 4], 0
je 0x46abda
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x46aa3e
call fcn.00468690
test eax, eax
je 0x46abda
fld dword [esi + 0x4c]
fstp dword [esp + 0x48]
fldz
fld dword [esp + 0x48]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x46ab30
mov ecx, dword [esi + 0x50]
mov edx, dword [esp + 0x20]
xor eax, eax
cmp ecx, edx
jne 0x46aaa8
fild dword [esp + 0x3c]
fmul st(1)
fld dword [esp + 0x30]
fld st(0)
fdivp st(2)
fxch st(1)
call fcn.004749f0
mov ecx, dword [esi + 0x18]
cmp eax, ecx
jge 0x46aa85
mov eax, ecx
mov ecx, dword [esi + 0x20]
cmp eax, ecx
jle 0x46aa8e
mov eax, ecx
sub dword [esp + 0x3c], eax
fsubrp st(1)
fstp dword [esp + 0x30]
jmp 0x46aab8
mov eax, dword [eax]
jmp 0x46a9aa
mov esi, dword [esi]
jmp 0x46a9ff
cmp ecx, edx
fstp st(0)
jge 0x46aab3
mov eax, dword [esi + 0x20]
jmp 0x46aab8
jle 0x46aab8
mov eax, dword [esi + 0x18]
cmp dword [esi + 0x10], 0
jne 0x46aac4
mov dword [esp + 0x48], eax
jmp 0x46aad6
mov edx, dword [ebx + 8]
mov ecx, dword [edx + 0x14]
and ecx, 0xffffff
add ecx, eax
mov dword [esp + 0x48], ecx
mov edi, dword [edi + 4]
mov ecx, dword [edi + 0x34]
add ecx, dword [edi + 0x2c]
mov edi, dword [esi + 0x14]
add ecx, dword [esi + 0x44]
add ecx, dword [esi + 0x3c]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00408290
push eax
mov eax, dword [esp + 0x4c]
xor edx, edx
test eax, eax
setl dl
mov ecx, ebx
dec edx
and edx, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x20]
and edx, 0x3fffffff
or edx, 0x40000000
push edx
call eax
mov eax, dword [ebx + 8]
movsx ecx, word [eax + 0x1a]
or ecx, dword [eax + 0x14]
mov edi, dword [esp + 0x50]
and ecx, 0xff000000
or dword [esp + 0x1c], ecx
jmp 0x46ab32
fstp st(0)
cmp byte [esp + 0x12], 0
je 0x46ab4f
mov edx, dword [ebx + 8]
mov eax, dword [edx + 0x14]
and eax, 0xffffff
add eax, dword [esi + 0x40]
add eax, dword [esi + 0x38]
add dword [edi + 0x60], eax
jmp 0x46ab76
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx + 0x14]
mov eax, dword [edi + 0x60]
and ecx, 0xffffff
lea edx, [eax + ecx]
add edx, dword [esi + 0x40]
add edx, dword [esi + 0x38]
cmp eax, edx
jg 0x46ab73
add eax, ecx
add eax, dword [esi + 0x40]
add eax, dword [esi + 0x38]
mov dword [edi + 0x60], eax
cmp dword [esp + 0x40], 0x40000000
je 0x46ab8a
cmp dword [esi + 0x14], 0xfffffffe
jne 0x46ab8a
mov dl, 1
jmp 0x46ab8c
xor dl, dl
mov eax, dword [ebx + 8]
mov ecx, dword [esi + 0x44]
mov eax, dword [eax + 0x18]
add ecx, dword [esi + 0x3c]
and eax, 0xffffff
add eax, ecx
cmp dword [esp + 0x14], eax
jg 0x46aba9
mov dword [esp + 0x14], eax
mov ebx, ecx
test dl, dl
jne 0x46abb1
mov ebx, eax
cmp dword [esp + 0x18], ebx
jg 0x46abc3
mov dword [esp + 0x18], ecx
test dl, dl
jne 0x46abc3
mov dword [esp + 0x18], eax
cmp byte [esp + 0x10], 0
je 0x46abd5
cmp dword [esi + 0x14], 0xfffffffe
mov byte [esp + 0x10], 1
je 0x46abda
mov byte [esp + 0x10], 0
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x46ac0c
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x38]
cmp ecx, dword [eax + 0x14]
jne 0x46abf9
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x38]
mov eax, dword [edx]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x38], eax
jmp 0x46a9d3
mov eax, dword [eax]
jmp 0x46abea
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x30]
add ecx, dword [eax + 0x28]
add dword [edi + 0x60], ecx
mov eax, dword [edi + 0x44]
or ecx, 0xffffffff
cmp eax, ecx
jne 0x46ac39
cmp dword [edi + 0x40], ecx
jne 0x46ac39
cmp dword [edi + 0x48], ecx
jne 0x46ac39
cmp dword [edi + 0x4c], ecx
je 0x46acd3
mov ecx, dword [edi + 0x48]
cmp eax, ecx
mov edx, eax
jg 0x46ac44
mov edx, ecx
mov ebx, dword [edi + 0x40]
cmp ebx, edx
jle 0x46ac4f
mov edx, ebx
jmp 0x46ac57
cmp eax, ecx
mov edx, eax
jg 0x46ac57
mov edx, ecx
mov esi, dword [edi + 0x4c]
cmp esi, edx
jle 0x46ac64
mov dword [esp + 0x3c], esi
jmp 0x46ac82
cmp eax, ecx
mov edx, eax
jg 0x46ac6c
mov edx, ecx
cmp ebx, edx
jle 0x46ac76
mov dword [esp + 0x3c], ebx
jmp 0x46ac82
cmp eax, ecx
mov dword [esp + 0x3c], eax
jg 0x46ac82
mov dword [esp + 0x3c], ecx
mov edx, dword [edi + 0x54]
mov esi, dword [edi + 0x58]
cmp edx, esi
mov ecx, edx
jg 0x46ac90
mov ecx, esi
mov eax, dword [edi + 0x50]
cmp eax, ecx
jle 0x46ac9b
mov ebx, eax
jmp 0x46aca3
cmp edx, esi
mov ebx, edx
jg 0x46aca3
mov ebx, esi
mov ecx, dword [edi + 0x5c]
cmp ecx, ebx
jg 0x46acc2
cmp edx, esi
mov ecx, edx
jg 0x46acb2
mov ecx, esi
cmp eax, ecx
jle 0x46acba
mov ecx, eax
jmp 0x46acc2
cmp edx, esi
mov ecx, edx
jg 0x46acc2
mov ecx, esi
mov edx, dword [esp + 0x3c]
lea eax, [ecx + edx]
cmp dword [esp + 0x14], eax
jg 0x46acd3
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x1c]
cmp byte [esp + 0x10], 0
mov ebx, dword [esp + 0x40]
jne 0x46acf2
cmp ebx, 0x40000000
je 0x46acf2
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x34]
add ecx, dword [eax + 0x2c]
mov edx, dword [edi]
add dword [esp + 0x14], ecx
mov eax, dword [edx + 0x1c]
mov ecx, edi
call eax
cmp dword [esp + 0x14], eax
jg 0x46ad1b
mov edx, dword [edi]
mov eax, dword [edx + 0x1c]
mov ecx, edi
call eax
mov dword [esp + 0x14], eax
mov ecx, dword [ebp + 0xc]
and ecx, 0x3fffffff
cmp ebx, 0x80000000
je 0x46ad3a
cmp ebx, 0x40000000
je 0x46ad4c
mov ecx, dword [esp + 0x14]
jmp 0x46ad4c
mov eax, dword [esp + 0x14]
cmp ecx, eax
jge 0x46ad4a
or ecx, 0x1000000
jmp 0x46ad4c
mov ecx, eax
mov eax, dword [edi + 8]
mov edx, esi
and esi, 0xffffff00
and edx, 0xff000000
or edx, dword [esp + 0x28]
shl esi, 0x10
or esi, ecx
cmp byte [esp + 0x13], 0
mov dword [eax + 0x14], edx
mov dword [eax + 0x18], esi
je 0x46ad7d
mov eax, dword [ebp + 8]
push eax
push edi
call fcn.00469a40
lea esi, [esp + 0x5c]
mov dword [esp + 0x88], 1
call fcn.0046e790
mov ecx, dword [esp + 0x5c]
push ecx
call sub.mfc90u.dll_delete
add esp, 4
mov ecx, dword [esp + 0x80]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8