Function at 0x10004310
Capabilities:
Terminate process

Disassembly:
sub esp, 0x18
push ebx
mov ebx, dword [esp + 0x20]
push ebp
push esi
push 0x1000
call dword [sym.imp.MSVCR80.dll_malloc]
mov esi, eax
add esp, 4
test esi, esi
jne 0x10004336
push 1
call dword [sym.imp.MSVCR80.dll_exit]
push 0x1000
push 0
push esi
call sub.ntdll.dll_memset
mov eax, dword [edi + 0xf4]
mov ecx, dword [edi + 0xf0]
mov edx, dword [ebx + 0x134]
push eax
push ecx
push 0x1000
push esi
push ebx
call edx
add esp, 0x20
cmp eax, 0x1000
jne 0x100044d2
cmp dword [esi], 0xa92b4efc
jne 0x1000439b
cmp dword [esi + 4], 1
jne 0x1000439b
mov eax, dword [esi + 0x90]
or eax, dword [esi + 0x94]
jne 0x1000439b
mov ecx, edi
mov eax, esi
call fcn.10005220
test eax, eax
je 0x100046d6
mov eax, dword [esi]
mov dword [esp + 0xc], eax
xor edx, edx
mov dh, byte [esp + 0xe]
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 8
or ecx, edx
or ecx, eax
cmp ecx, 0xa92b4efc
jne 0x100044d2
mov eax, dword [esi + 4]
mov dword [esp + 0xc], eax
xor edx, edx
mov dh, byte [esp + 0xe]
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
or ecx, eax
movzx eax, byte [esi + 7]
shl ecx, 8
or ecx, edx
or ecx, eax
cmp ecx, 1
jne 0x100044d2
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x94]
mov dword [esp + 0x18], ecx
mov edx, eax
shld ecx, edx, 0x10
shl edx, 0x10
mov ebx, eax
and ebx, 0xff00
or edx, ebx
xor ebp, ebp
or ecx, ebp
shld ecx, edx, 0x10
shl edx, 0x10
mov ebx, eax
and ebx, 0xff0000
or edx, ebx
or ecx, ebp
shld ecx, edx, 0x10
mov ebx, eax
and ebx, 0xff000000
shl edx, 0x10
or edx, ebx
or ecx, ebp
mov ebx, ecx
shld ebx, edx, 8
mov dword [esp + 0x10], ebx
shl edx, 8
mov ecx, edx
mov edx, dword [esp + 0x18]
mov ebx, edx
shrd eax, ebx, 0x10
shr ebx, 0x10
and ebx, 0xff
xor eax, eax
and edx, 0xff00
or ebx, edx
or eax, ebp
movzx ebp, byte [esp + 0x18]
shrd eax, ebx, 0x10
shr ebx, 0x10
xor edx, edx
or ebx, ebp
or eax, edx
shrd eax, ebx, 8
shr ebx, 8
or ecx, eax
movzx eax, byte [esi + 0x97]
mov edx, ebx
mov ebx, dword [esp + 0x10]
or ebx, edx
cdq
or ecx, eax
or ebx, edx
or ecx, ebx
jne 0x100044ce
mov edx, edi
mov eax, esi
call fcn.10005250
test eax, eax
jne 0x100044ce
mov eax, edi
mov ecx, esi
call fcn.10004c40
push esi
call dword [sym.imp.MSVCR80.dll_free]
add esp, 4
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov ebx, dword [esp + 0x28]
mov eax, dword [edi + 0xf0]
mov ecx, dword [edi + 0xf4]
mov edx, dword [ebx + 0x134]
add eax, 0x1000
adc ecx, 0
push ecx
push eax
push 0x1000
push esi
push ebx
call edx
add esp, 0x14
cmp eax, 0x1000
jne 0x1000465a
cmp dword [esi], 0xa92b4efc
jne 0x10004536
cmp dword [esi + 4], 1
jne 0x10004536
cmp dword [esi + 0x90], 8
jne 0x10004536
cmp dword [esi + 0x94], 0
jne 0x10004536
mov ecx, edi
mov eax, esi
call fcn.10005220
test eax, eax
je 0x100046d6
mov eax, dword [esi]
mov dword [esp + 0xc], eax
xor edx, edx
mov dh, byte [esp + 0xe]
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 8
or ecx, edx
or ecx, eax
cmp ecx, 0xa92b4efc
jne 0x1000465a
mov eax, dword [esi + 4]
mov dword [esp + 0xc], eax
xor edx, edx
mov dh, byte [esp + 0xe]
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
or ecx, eax
movzx eax, byte [esi + 7]
shl ecx, 8
or ecx, edx
or ecx, eax
cmp ecx, 1
jne 0x1000465a
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x94]
mov dword [esp + 0x18], ecx
mov edx, eax
shld ecx, edx, 0x10
shl edx, 0x10
mov ebx, eax
and ebx, 0xff00
or edx, ebx
xor ebp, ebp
or ecx, ebp
shld ecx, edx, 0x10
shl edx, 0x10
mov ebx, eax
and ebx, 0xff0000
or edx, ebx
or ecx, ebp
shld ecx, edx, 0x10
mov ebx, eax
and ebx, 0xff000000
shl edx, 0x10
or edx, ebx
or ecx, ebp
mov ebx, ecx
shld ebx, edx, 8
mov dword [esp + 0x10], ebx
shl edx, 8
mov ecx, edx
mov edx, dword [esp + 0x18]
mov ebx, edx
shrd eax, ebx, 0x10
shr ebx, 0x10
and ebx, 0xff
xor eax, eax
and edx, 0xff00
or ebx, edx
or eax, ebp
movzx ebp, byte [esp + 0x18]
shrd eax, ebx, 0x10
shr ebx, 0x10
xor edx, edx
or ebx, ebp
or eax, edx
shrd eax, ebx, 8
shr ebx, 8
or ecx, eax
movzx eax, byte [esi + 0x97]
mov edx, ebx
mov ebx, dword [esp + 0x10]
or ebx, edx
cdq
or ecx, eax
or ebx, edx
cmp ecx, 8
jne 0x10004656
test ebx, ebx
jne 0x10004656
mov edx, edi
mov eax, esi
call fcn.10005250
test eax, eax
je 0x100044b2
mov ebx, dword [esp + 0x28]
mov eax, dword [edi + 0xf8]
mov ecx, dword [edi + 0xfc]
shrd eax, ecx, 9
shr ecx, 9
and eax, 0xffffff80
and ecx, 0x7fffff
push 0
add eax, 0xffffff80
push 0x200
adc ecx, 0xffffffff
push ecx
push eax
call sub.ntdll.dll__allmul
mov ecx, dword [edi + 0xf0]
add ecx, eax
mov eax, dword [edi + 0xf4]
adc eax, edx
push eax
push ecx
mov ecx, dword [ebx + 0x134]
push 0x1000
push esi
push ebx
call ecx
add esp, 0x14
cmp eax, 0x1000
jne 0x1000474d
mov eax, dword [esi]
cmp eax, 0xa92b4efc
mov dword [esp + 0xc], eax
jne 0x100046f1
cmp dword [esi + 4], 0
jne 0x100046f1
mov dword [edi + 0x14c], 0x1a
push esi
mov eax, edi
call fcn.10004950
push esi
call dword [sym.imp.MSVCR80.dll_free]
add esp, 8
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
movzx ecx, byte [esi + 3]
mov edx, eax
shl edx, 0x10
and eax, 0xff00
or edx, eax
xor eax, eax
mov ah, byte [esp + 0xe]
shl edx, 8
or edx, eax
or edx, ecx
cmp edx, 0xa92b4efc
jne 0x1000474d
mov eax, dword [esi + 4]
movzx ecx, byte [esi + 7]
mov edx, eax
mov dword [esp + 0xc], eax
shl edx, 0x10
and eax, 0xff00
or edx, eax
xor eax, eax
mov ah, byte [esp + 0xe]
shl edx, 8
or edx, eax
or edx, ecx
jne 0x1000474d
mov edx, edi
mov eax, esi
call fcn.10005250
test eax, eax
je 0x100044b2
mov eax, dword [edi + 0xfc]
test eax, eax
mov ecx, dword [edi + 0xf8]
ja 0x10004769
cmp ecx, 0x2000
jbe 0x1000492c
shrd ecx, eax, 9
shr eax, 9
push 0
add ecx, 0xfffffff0
adc eax, 0xffffffff
push 0x200
and ecx, 0xfffffff8
push eax
push ecx
call sub.ntdll.dll__allmul
mov ecx, dword [edi + 0xf4]
mov ebp, eax
mov eax, dword [edi + 0xf0]
add eax, ebp
adc ecx, edx
push ecx
push eax
push 0x1000
mov dword [esp + 0x24], edx
mov edx, dword [ebx + 0x134]
push esi
push ebx
mov dword [esp + 0x28], ebp
call edx
add esp, 0x14
cmp eax, 0x1000
jne 0x1000492c
cmp dword [esi], 0xa92b4efc
jne 0x100047fe
cmp dword [esi + 4], 1
jne 0x100047fe
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x90]
shrd ebp, eax, 9
shr eax, 9
cmp ecx, ebp
jne 0x100047fe
mov edx, dword [esi + 0x94]
cmp edx, eax
jne 0x100047fe
mov ecx, edi
mov eax, esi
call fcn.10005220
test eax, eax
je 0x100046d6
mov eax, dword [esi]
mov dword [esp + 0xc], eax
xor edx, edx
mov dh, byte [esp + 0xe]
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 8
or ecx, edx
or ecx, eax
cmp ecx, 0xa92b4efc
jne 0x1000492c
mov eax, dword [esi + 4]
mov dword [esp + 0xc], eax
xor edx, edx
mov dh, byte [esp + 0xe]
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
or ecx, eax
movzx eax, byte [esi + 7]
shl ecx, 8
or ecx, edx
or ecx, eax
cmp ecx, 1
jne 0x1000492c
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x94]
mov edx, eax
mov dword [esp + 0x10], ecx
shld ecx, edx, 0x10
shl edx, 0x10
mov ebx, eax
and ebx, 0xff00
or edx, ebx
xor ebp, ebp
or ecx, ebp
shld ecx, edx, 0x10
shl edx, 0x10
mov ebx, eax
and ebx, 0xff0000
or edx, ebx
or ecx, ebp
shld ecx, edx, 0x10
mov ebx, eax
and ebx, 0xff000000
shl edx, 0x10
or edx, ebx
or ecx, ebp
mov ebx, ecx
shld ebx, edx, 8
shl edx, 8
mov dword [esp + 0x20], ebx
mov ecx, edx
mov edx, dword [esp + 0x10]
mov ebx, edx
shrd eax, ebx, 0x10
shr ebx, 0x10
and ebx, 0xff
xor eax, eax
and edx, 0xff00
or ebx, edx
or eax, ebp
movzx ebp, byte [esp + 0x10]
shrd eax, ebx, 0x10
shr ebx, 0x10
xor edx, edx
or eax, edx
or ebx, ebp
shrd eax, ebx, 8
shr ebx, 8
or ecx, eax
movzx eax, byte [esi + 0x97]
mov edx, ebx
mov ebx, dword [esp + 0x20]
or ebx, edx
cdq
or ecx, eax
mov eax, dword [esp + 0x18]
or ebx, edx
mov edx, dword [esp + 0x14]
shrd edx, eax, 9
shr eax, 9
cmp ecx, edx
jne 0x1000492c
cmp ebx, eax
jne 0x1000492c
mov edx, edi
mov eax, esi
call fcn.10005250
test eax, eax
je 0x100044b2
push esi
call dword [sym.imp.MSVCR80.dll_free]
add esp, 4
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x18
ret