Function at 0x469f20
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 0x477fd0
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.0046e0e0
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 0x469ff8
cmp esi, eax
je 0x469ffe
call dword [0x47c2fc]
cmp ebx, dword [esp + 0x58]
je 0x46a2a0
test esi, esi
jne 0x46a072
call dword [0x47c2fc]
cmp ebx, dword [esi + 0x14]
jne 0x46a01d
call dword [0x47c2fc]
mov ebx, dword [ebx + 8]
mov dword [esp + 0x20], ebx
test ebx, ebx
je 0x46a26c
mov edx, ebx
mov esi, dword [edx + 4]
cmp dword [esi + 4], 0
je 0x46a26c
mov eax, ebx
mov eax, dword [eax + 0x30]
test eax, eax
je 0x46a051
call fcn.004681a0
test eax, eax
je 0x46a26c
cmp dword [esi + 0x10], 0
fld dword [esi + 0x4c]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fldz
jne 0x46a076
fcom dword [esi + 0x4c]
fnstsw ax
test ah, 5
jp 0x46a076
mov bl, 1
jmp 0x46a078
mov esi, dword [esi]
jmp 0x46a012
xor bl, bl
cmp dword [esp + 0x48], 0x40000000
jne 0x46a13a
test bl, bl
je 0x46a145
fcomp dword [esi + 0x4c]
fnstsw ax
test ah, 5
jp 0x46a0f5
lea eax, [esi + 0x50]
push eax
lea ebx, [esp + 0x60]
call fcn.0046d840
fld dword [esi + 0x4c]
fadd dword [eax]
fstp dword [eax]
lea eax, [esi + 0x50]
push eax
call fcn.0046d840
mov ecx, dword [esi + 0x18]
add dword [eax + 4], ecx
add eax, 4
lea eax, [esi + 0x50]
push eax
call fcn.0046d840
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, SysReAllocString
sub ecx, eax
cmp ecx, dword [esp + 0x24]
jle 0x46a0ed
add dword [esp + 0x24], eax
jmp 0x46a0f5
mov dword [esp + 0x24], SysStringLen
cmp byte [esp + 0x12], 0
je 0x46a107
mov edx, dword [esi + 0x40]
add edx, dword [esi + 0x38]
add dword [edi + 0x60], edx
jmp 0x46a11b
mov ecx, dword [esi + 0x40]
add ecx, dword [esi + 0x38]
mov eax, dword [edi + 0x60]
add ecx, eax
cmp eax, ecx
jg 0x46a118
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 0x46a1b6
test bl, bl
je 0x46a145
mov dword [esi + 0x10], 0xffffffff
fcomp dword [esp + 0x30]
fnstsw ax
test ah, 0x44
jp 0x46a155
mov eax, dword [edi + 0x60]
jmp 0x46a157
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.00469030
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0x14]
and eax, 0xffffff
test bl, bl
je 0x46a18c
add dword [esp + 0x3c], eax
mov dword [esi + 0x10], 0
cmp byte [esp + 0x12], 0
je 0x46a1a0
mov ecx, dword [esi + 0x40]
add ecx, dword [esi + 0x38]
add ecx, eax
add dword [edi + 0x60], ecx
jmp 0x46a1b6
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 0x46a1b3
mov eax, ecx
mov dword [edi + 0x60], eax
cmp dword [esp + 0x40], 0x40000000
mov byte [esp + 0x11], 0
je 0x46a1d5
cmp dword [esi + 0x14], 0xfffffffe
jne 0x46a1d5
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 0x46a20f
mov dword [esp + 0x14], ecx
cmp byte [esp + 0x10], 0
je 0x46a221
cmp dword [esi + 0x14], 0xfffffffe
mov byte [esp + 0x10], 1
je 0x46a226
mov byte [esp + 0x10], 0
fldz
mov bl, byte [esp + 0x11]
fcomp dword [esi + 0x4c]
fnstsw ax
test ah, 5
mov eax, edx
jp 0x46a254
test bl, bl
jne 0x46a23e
mov eax, ecx
cmp dword [esp + 0x34], eax
jg 0x46a26c
test bl, bl
je 0x46a24e
mov dword [esp + 0x34], edx
jmp 0x46a26c
mov dword [esp + 0x34], ecx
jmp 0x46a26c
test bl, bl
jne 0x46a25a
mov eax, ecx
cmp dword [esp + 0x18], eax
jg 0x46a26c
mov dword [esp + 0x18], edx
test bl, bl
jne 0x46a26c
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x46a29c
call dword [0x47c2fc]
xor eax, eax
mov esi, dword [esp + 0x2c]
cmp esi, dword [eax + 0x14]
jne 0x46a28b
call dword [0x47c2fc]
mov ecx, dword [esi]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
mov ebx, ecx
jmp 0x469fe6
mov eax, dword [eax]
jmp 0x46a27c
mov ecx, dword [edi + 0x44]
or eax, 0xffffffff
cmp ecx, eax
jne 0x46a2bd
cmp dword [edi + 0x40], eax
jne 0x46a2bd
cmp dword [edi + 0x48], eax
jne 0x46a2bd
cmp dword [edi + 0x4c], eax
je 0x46a356
mov eax, dword [edi + 0x48]
cmp ecx, eax
mov edx, ecx
jg 0x46a2c8
mov edx, eax
mov ebx, dword [edi + 0x40]
cmp ebx, edx
jle 0x46a2d3
mov edx, ebx
jmp 0x46a2db
cmp ecx, eax
mov edx, ecx
jg 0x46a2db
mov edx, eax
mov esi, dword [edi + 0x4c]
cmp esi, edx
jle 0x46a2e8
mov dword [esp + 0x28], esi
jmp 0x46a306
cmp ecx, eax
mov edx, ecx
jg 0x46a2f0
mov edx, eax
cmp ebx, edx
jle 0x46a2fa
mov dword [esp + 0x28], ebx
jmp 0x46a306
cmp ecx, eax
mov dword [esp + 0x28], ecx
jg 0x46a306
mov dword [esp + 0x28], eax
mov ecx, dword [edi + 0x54]
mov edx, dword [edi + 0x58]
cmp ecx, edx
mov eax, ecx
jg 0x46a314
mov eax, edx
mov ebx, dword [edi + 0x50]
cmp ebx, eax
jle 0x46a31f
mov esi, ebx
jmp 0x46a327
cmp ecx, edx
mov esi, ecx
jg 0x46a327
mov esi, edx
mov eax, dword [edi + 0x5c]
cmp eax, esi
jg 0x46a346
cmp ecx, edx
mov eax, ecx
jg 0x46a336
mov eax, edx
cmp ebx, eax
jle 0x46a33e
mov eax, ebx
jmp 0x46a346
cmp ecx, edx
mov eax, ecx
jg 0x46a346
mov eax, edx
mov edx, dword [esp + 0x28]
add eax, edx
cmp dword [esp + 0x14], eax
jg 0x46a356
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 0x46a37d
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 0x46a39f
cmp ecx, 0x40000000
jne 0x46a3ae
mov dword [esp + 0x28], eax
jmp 0x46a3b2
cmp eax, esi
jge 0x46a3ae
or eax, 0x1000000
mov dword [esp + 0x28], eax
jmp 0x46a3b2
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 0x46a3f6
mov eax, dword [esp + 0x34]
fstp st(0)
cmp dword [esp + 0x18], eax
mov esi, dword [esp + 0x1c]
jg 0x46a877
mov dword [esp + 0x18], eax
jmp 0x46a877
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 0x46a52c
cmp ecx, dword [esp + 0x24]
jl 0x46a43d
mov dword [esp + 0x20], 0x8000000
jmp 0x46a55c
sub ecx, dword [esp + 0x44]
mov dword [esp + 0x34], ecx
test ecx, ecx
jle 0x46a55c
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 0x46a472
cmp esi, dword [esp + 0x5c]
je 0x46a478
call dword [0x47c2fc]
cmp ebx, dword [esp + 0x58]
je 0x46a4fa
test esi, esi
jne 0x46a4ee
call dword [0x47c2fc]
xor eax, eax
cmp ebx, dword [eax + 0x18]
jne 0x46a495
call dword [0x47c2fc]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x20], eax
test esi, esi
jne 0x46a4f2
call dword [0x47c2fc]
xor eax, eax
cmp ebx, dword [eax + 0x18]
jne 0x46a4b3
call dword [0x47c2fc]
test esi, esi
jne 0x46a4f6
call dword [0x47c2fc]
cmp ebx, dword [esi + 0x18]
jne 0x46a4c8
call dword [0x47c2fc]
mov eax, dword [ebx + 0x18]
sub eax, dword [ebx + 0x14]
cmp eax, dword [esp + 0x34]
jge 0x46a4fa
sub dword [esp + 0x34], eax
lea esi, [esp + 0x48]
call fcn.0046fab0
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
jmp 0x46a460
mov eax, dword [esi]
jmp 0x46a48a
mov eax, dword [esi]
jmp 0x46a4a8
mov esi, dword [esi]
jmp 0x46a4bd
cmp dword [esp + 0x20], 0xffffffff
je 0x46a55c
lea ecx, [esp + 0x20]
push ecx
lea ebx, [esp + 0x60]
call fcn.0046d840
mov eax, dword [eax + 4]
add eax, dword [esp + 0x34]
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x40], eax
call fcn.0046d840
fld dword [eax]
fstp dword [esp + 0x30]
jmp 0x46a55c
test eax, eax
je 0x46a55c
mov eax, dword [esp + 0x74]
mov esi, dword [eax]
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x46a63a
call dword [0x47c2fc]
xor eax, eax
cmp esi, dword [eax + 0x18]
jne 0x46a555
call dword [0x47c2fc]
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 0x46a581
cmp esi, eax
je 0x46a587
call dword [0x47c2fc]
cmp dword [esp + 0x38], ebx
je 0x46a7b0
test esi, esi
jne 0x46a641
call dword [0x47c2fc]
mov eax, dword [esp + 0x38]
cmp eax, dword [esi + 0x14]
jne 0x46a5ae
call dword [0x47c2fc]
mov ecx, dword [esp + 0x38]
mov ebx, dword [ecx + 8]
test ebx, ebx
je 0x46a77a
mov esi, dword [ebx + 4]
cmp dword [esi + 4], 0
je 0x46a77a
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x46a5de
call fcn.004681a0
test eax, eax
je 0x46a77a
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 0x46a6d0
mov ecx, dword [esi + 0x50]
mov edx, dword [esp + 0x20]
xor eax, eax
cmp ecx, edx
jne 0x46a648
fild dword [esp + 0x3c]
fmul st(1)
fld dword [esp + 0x30]
fld st(0)
fdivp st(2)
fxch st(1)
call fcn.00474560
mov ecx, dword [esi + 0x18]
cmp eax, ecx
jge 0x46a625
mov eax, ecx
mov ecx, dword [esi + 0x20]
cmp eax, ecx
jle 0x46a62e
mov eax, ecx
sub dword [esp + 0x3c], eax
fsubrp st(1)
fstp dword [esp + 0x30]
jmp 0x46a658
mov eax, dword [eax]
jmp 0x46a54a
mov esi, dword [esi]
jmp 0x46a59f
cmp ecx, edx
fstp st(0)
jge 0x46a653
mov eax, dword [esi + 0x20]
jmp 0x46a658
jle 0x46a658
mov eax, dword [esi + 0x18]
cmp dword [esi + 0x10], 0
jne 0x46a664
mov dword [esp + 0x48], eax
jmp 0x46a676
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.00468f80
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 0x46a6d2
fstp st(0)
cmp byte [esp + 0x12], 0
je 0x46a6ef
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 0x46a716
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 0x46a713
add eax, ecx
add eax, dword [esi + 0x40]
add eax, dword [esi + 0x38]
mov dword [edi + 0x60], eax
cmp dword [esp + 0x40], 0x40000000
je 0x46a72a
cmp dword [esi + 0x14], 0xfffffffe
jne 0x46a72a
mov dl, 1
jmp 0x46a72c
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 0x46a749
mov dword [esp + 0x14], eax
mov ebx, ecx
test dl, dl
jne 0x46a751
mov ebx, eax
cmp dword [esp + 0x18], ebx
jg 0x46a763
mov dword [esp + 0x18], ecx
test dl, dl
jne 0x46a763
mov dword [esp + 0x18], eax
cmp byte [esp + 0x10], 0
je 0x46a775
cmp dword [esi + 0x14], 0xfffffffe
mov byte [esp + 0x10], 1
je 0x46a77a
mov byte [esp + 0x10], 0
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x46a7ac
call dword [0x47c2fc]
xor eax, eax
mov ecx, dword [esp + 0x38]
cmp ecx, dword [eax + 0x14]
jne 0x46a799
call dword [0x47c2fc]
mov edx, dword [esp + 0x38]
mov eax, dword [edx]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x38], eax
jmp 0x46a573
mov eax, dword [eax]
jmp 0x46a78a
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 0x46a7d9
cmp dword [edi + 0x40], ecx
jne 0x46a7d9
cmp dword [edi + 0x48], ecx
jne 0x46a7d9
cmp dword [edi + 0x4c], ecx
je 0x46a873
mov ecx, dword [edi + 0x48]
cmp eax, ecx
mov edx, eax
jg 0x46a7e4
mov edx, ecx
mov ebx, dword [edi + 0x40]
cmp ebx, edx
jle 0x46a7ef
mov edx, ebx
jmp 0x46a7f7
cmp eax, ecx
mov edx, eax
jg 0x46a7f7
mov edx, ecx
mov esi, dword [edi + 0x4c]
cmp esi, edx
jle 0x46a804
mov dword [esp + 0x3c], esi
jmp 0x46a822
cmp eax, ecx
mov edx, eax
jg 0x46a80c
mov edx, ecx
cmp ebx, edx
jle 0x46a816
mov dword [esp + 0x3c], ebx
jmp 0x46a822
cmp eax, ecx
mov dword [esp + 0x3c], eax
jg 0x46a822
mov dword [esp + 0x3c], ecx
mov edx, dword [edi + 0x54]
mov esi, dword [edi + 0x58]
cmp edx, esi
mov ecx, edx
jg 0x46a830
mov ecx, esi
mov eax, dword [edi + 0x50]
cmp eax, ecx
jle 0x46a83b
mov ebx, eax
jmp 0x46a843
cmp edx, esi
mov ebx, edx
jg 0x46a843
mov ebx, esi
mov ecx, dword [edi + 0x5c]
cmp ecx, ebx
jg 0x46a862
cmp edx, esi
mov ecx, edx
jg 0x46a852
mov ecx, esi
cmp eax, ecx
jle 0x46a85a
mov ecx, eax
jmp 0x46a862
cmp edx, esi
mov ecx, edx
jg 0x46a862
mov ecx, esi
mov edx, dword [esp + 0x3c]
lea eax, [ecx + edx]
cmp dword [esp + 0x14], eax
jg 0x46a873
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x1c]
cmp byte [esp + 0x10], 0
mov ebx, dword [esp + 0x40]
jne 0x46a892
cmp ebx, 0x40000000
je 0x46a892
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 0x46a8bb
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 0x46a8da
cmp ebx, 0x40000000
je 0x46a8ec
mov ecx, dword [esp + 0x14]
jmp 0x46a8ec
mov eax, dword [esp + 0x14]
cmp ecx, eax
jge 0x46a8ea
or ecx, 0x1000000
jmp 0x46a8ec
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 0x46a91d
mov eax, dword [ebp + 8]
push eax
push edi
call fcn.004695d0
lea esi, [esp + 0x5c]
mov dword [esp + 0x88], 1
call fcn.0046e330
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.0047284c
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