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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xe0
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x68], edx
mov edx, eax
mov eax, dword [eax]
mov ecx, dword [edx + 8]
mov ebx, dword [edx + 0x88]
mov esi, dword [eax + 0x54]
add edx, 0xc
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x78], edx
mov ebx, dword [ebp + 0xc]
mov edx, dword [esi + 0x9c]
mov ecx, dword [ebp + 8]
push ebx
mov dword [ebp - 0x7c], esi
push ecx
mov dword [ebp - 0x80], edx
push eax
call fcn.00465c50
add esp, 0x10
test eax, eax
mov dword [ebp - 0x6c], eax
jne 0x46fec0
mov ecx, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x64]
mov al, byte [ecx + 8]
mov byte [ebx + 0x8c], al
test al, al
jne 0x46fed0
mov ebx, dword [ebp - 0x7c]
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x34]
mov dword [ebx + 0x3c], eax
mov eax, dword [ebx + 0x48]
cmp eax, 0x636f6d70
je 0x46ff58
mov dword [ebp - 0x6c], 7
cmp eax, 0x6f75746c
je 0x470200
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x46fec0
mov ecx, dword [ebp - 0x7c]
lea edi, [ebp - 0x60]
mov eax, dword [ecx + 0x20]
mov ebx, dword [ecx + 0x2c]
sub ebx, eax
mov dword [ebp - 0x60], ebx
mov eax, dword [ecx + 0x24]
mov esi, dword [ecx + 0x30]
sub esi, eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x5c], esi
mov edx, dword [eax + 8]
mov eax, ebx
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x60], eax
mov eax, esi
mov edx, dword [ecx + 0xc]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x5c], eax
lea esi, [edx + 0x14]
cmp byte [ecx + 0x8c], 0
jne 0x470469
mov ebx, dword [ebp - 0x64]
mov eax, dword [ebx + 0xa8]
test eax, eax
jne 0x470455
push eax
push eax
lea eax, [ebp - 0x58]
push eax
push esi
call fcn.00466d60
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x4c]
add edx, 0x3f
mov ebx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x7c]
and ecx, 0xffffffc0
and edx, 0xffffffc0
add eax, 0x3f
mov dword [ebp - 0x50], edx
and eax, 0xffffffc0
sub edx, ecx
and ebx, 0xffffffc0
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x54], ebx
mov dword [esi + 0x18], edx
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
sub eax, ecx
add esp, 0x10
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 0x58]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x4c]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x58]
add eax, edx
and eax, 0xffffffc0
mov dword [esi + 0x2c], eax
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0x4c]
add eax, edi
and eax, 0xffffffc0
mov dword [esi + 0x30], eax
mov eax, dword [esi + 4]
test byte [eax + 8], 4
jne 0x46fdf4
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 4]
xor edx, edx
cmp dword [eax + 4], ecx
jbe 0x46fddf
mov eax, dword [eax + 8]
xor edx, edx
mov dl, byte [ecx + eax]
and edx, 0x80
test edx, edx
je 0x4701d8
mov ebx, dword [ebp - 0x74]
cmp byte [ebx + 0x20], 0
je 0x4701d8
mov esi, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x74]
mov ebx, dword [esi + 0x28]
mov edx, dword [eax + 8]
mov eax, ebx
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov ebx, eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x90], 0
mov dword [esi + 0x94], 0
mov esi, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x74]
mov eax, dword [esi + 0x34]
mov edx, dword [ecx + 0xc]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
lea edx, [ebx + 0x20]
add eax, 0x20
mov ebx, dword [ebp - 0x80]
and edx, 0xffffffc0
and eax, 0xffffffc0
sub esp, 0xc
mov dword [esi + 0x28], edx
mov dword [esi + 0x34], eax
mov ecx, dword [ebx]
push ecx
call fcn.00463990
pop eax
mov edi, dword [ebp - 0x70]
pop edx
push edi
mov ecx, dword [ebx]
push ecx
call fcn.0046b020
add esp, 0x10
test eax, eax
mov dword [ebp - 0x6c], eax
jne 0x46fec0
mov edx, dword [ebx]
mov dword [esi + 0x48], 0x6f75746c
mov eax, dword [edx + 0x14]
mov dword [esi + 0x6c], eax
mov eax, dword [edx + 0x18]
mov dword [esi + 0x70], eax
mov eax, dword [edx + 0x1c]
mov dword [esi + 0x74], eax
mov eax, dword [edx + 0x20]
mov dword [esi + 0x78], eax
mov eax, dword [edx + 0x24]
mov dword [esi + 0x7c], eax
lea esi, [esi]
mov eax, dword [ebp - 0x6c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [ecx + 0xc]
mov eax, dword [ebp - 0x64]
mov dword [ebx + 0x90], edi
sub esp, 0xc
mov esi, dword [ecx + 0x10]
mov dword [ebx + 0x94], esi
mov ebx, dword [ecx + 0x14]
mov dword [eax + 0x98], ebx
mov edx, dword [ecx + 0x18]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x1c], edx
mov dword [eax + 0x9c], edx
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x20], ebx
lea ebx, [ebp - 0x28]
mov dword [ebp - 0x28], edi
mov eax, dword [edx + 0x1c]
mov edx, dword [edx + 0x20]
mov dword [ecx + 0xa4], edx
mov dword [ecx + 0xa0], eax
mov dword [ebp - 0x24], esi
push ebx
call fcn.00463610
pop eax
mov eax, dword [ebp - 0x64]
pop edx
add eax, 0xa0
push ebx
push eax
call fcn.00464030
mov ebx, dword [ebp - 0x7c]
add esp, 0x10
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x34]
mov dword [ebx + 0x3c], eax
mov eax, dword [ebx + 0x48]
cmp eax, 0x636f6d70
jne 0x46fc9a
mov ebx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x7c]
movsx ebx, word [ebx + 0x16]
mov ecx, dword [ecx + 0x80]
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x90], ecx
push ebx
push ebx
push ecx
mov ecx, dword [ebp - 0x70]
push ecx
call fcn.0046ae00
add esp, 0x10
test eax, eax
mov dword [ebp - 0x6c], eax
jne 0x46fec0
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x90]
shl ecx, 5
mov edi, dword [esi + 0x58]
cld
shr ecx, 2
mov esi, dword [eax + 0x84]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0x8c], 0
cmp dword [ebp - 0x6c], ecx
mov dword [edx + 0x54], ecx
mov eax, dword [edx + 0x30]
jae 0x46fcac
shl eax, 5
mov ebx, dword [ebp + 0x10]
inc ebx
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], ebx
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x64]
mov esi, dword [ebp - 0xbc]
mov edi, dword [ebp - 0xb8]
mov edx, dword [eax + 0x34]
mov ebx, dword [ebp + 0xc]
add esi, edx
mov edx, dword [ecx + 0xa8]
mov ecx, dword [ecx + 0xac]
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0x9c], ecx
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x70]
mov eax, dword [edx + 0xb0]
mov edx, dword [edx + 0xb4]
movsx ecx, word [ecx + 0x16]
mov dword [ebp - 0xa8], eax
push eax
push edi
push ebx
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0xb0], ecx
mov edx, dword [ebp - 0x68]
mov ecx, dword [esi]
mov eax, dword [ebp - 0x64]
push ecx
call fcn.0046fc10
add esp, 0x10
test eax, eax
mov dword [ebp - 0x6c], eax
jne 0x46fec0
mov ebx, dword [ebp - 0x70]
mov esi, dword [ebp - 0xbc]
mov edx, dword [ebx + 0x34]
add esi, edx
mov dx, word [esi + 4]
test dh, 2
jne 0x4700a4
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0xa0]
mov ebx, dword [ebp - 0x9c]
mov dword [eax + 0xa8], ecx
mov dword [eax + 0xac], ebx
mov ecx, dword [ebp - 0xa8]
mov ebx, dword [ebp - 0xa4]
mov dword [eax + 0xb0], ecx
mov dword [eax + 0xb4], ebx
mov ecx, dword [ebp - 0x70]
mov ebx, dword [ebp - 0xb0]
movsx ecx, word [ecx + 0x16]
sub ecx, ebx
mov dword [ebp - 0xac], ecx
test dl, 0xc8
je 0x470100
mov ecx, dword [ebp - 0x70]
mov eax, dword [ecx + 0x18]
lea ebx, [eax + ebx*8]
mov eax, dword [ebp - 0xac]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xb4], eax
cmp ebx, eax
jae 0x470100
lea edi, [esi + 0x10]
lea esi, [esi]
push eax
push eax
push edi
push ebx
add ebx, 8
call fcn.00464030
add esp, 0x10
cmp ebx, dword [ebp - 0xb4]
jb 0x4700e0
mov dx, word [esi + 4]
nop
lea esi, [esi]
and edx, 2
jne 0x470532
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0x94]
add ecx, eax
mov ebx, dword [esi + 0xc]
cmp ecx, dword [ebp - 0xb0]
setae dl
cmp ebx, dword [ebp - 0xac]
setae al
or eax, edx
test al, 1
jne 0x470611
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0xb0]
add ebx, eax
mov eax, dword [edx + 0x18]
mov edx, dword [ebp - 0x94]
add edx, ebx
lea ecx, [eax + ecx*8]
lea edx, [eax + edx*8]
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
mov eax, dword [edx]
sub ebx, eax
mov eax, dword [edx + 4]
sub ecx, eax
mov edx, dword [ebp - 0x70]
mov esi, edx
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x48], eax
mov edx, dword [edx + 0x18]
mov dword [ebp - 0x44], edx
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x24]
mov esi, dword [ebp - 0xb0]
mov dword [ebp - 0x38], eax
lea eax, [edx + esi*8]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0xac]
mov word [ebp - 0x46], ax
lea eax, [ebp - 0x48]
push esi
push ecx
push ebx
push eax
call fcn.00466e10
mov edx, dword [ebp - 0x8c]
inc edx
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x8c], edx
add eax, 0x20
mov edx, dword [ebp - 0x90]
add esp, 0x10
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0x8c], edx
jb 0x46ffe1
jmp 0x46fcac
mov edx, dword [ebp - 0x7c]
mov ebx, dword [edx + 0x28]
test ebx, ebx
je 0x46fe35
mov ecx, dword [ebp - 0x64]
mov ebx, dword [ecx + 0xb0]
mov esi, dword [ecx + 0xa8]
sub ebx, esi
mov dword [edx + 0x28], ebx
jmp 0x46fe35
mov esi, dword [ebp - 0x64]
cmp byte [esi + 0x8c], 0
jne 0x4704ba
mov eax, dword [ebp - 0x7c]
mov bx, word [eax + 0x6e]
movsx ecx, bx
cmp ecx, 0xfffffffc
je 0x47023c
mov edx, dword [ebp - 0x70]
movsx eax, word [edx + 0x16]
movsx edx, word [edx + 0x3a]
add eax, edx
lea eax, [eax + ecx + 4]
mov ecx, dword [ebp - 0x70]
cmp eax, dword [ecx + 4]
ja 0x47048b
mov esi, dword [ebp - 0x7c]
mov cx, word [esi + 0x6c]
test cx, cx
je 0x470266
mov edx, dword [ebp - 0x70]
mov esi, dword [ebp - 0x70]
movsx eax, word [edx + 0x14]
movsx edx, word [edx + 0x38]
add eax, edx
movsx edx, cx
add eax, edx
cmp eax, dword [esi + 8]
ja 0x470492
mov dword [ebp - 0x6c], 0
mov edx, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x70]
cld
movsx ecx, word [edx + 0x6e]
shl ecx, 3
mov edi, dword [ebx + 0x3c]
shr ecx, 2
mov esi, dword [edx + 0x70]
rep movsd dword es:[edi], dword [esi]
movsx eax, word [edx + 0x6c]
add eax, eax
push esi
push eax
mov ecx, dword [edx + 0x78]
push ecx
mov edx, dword [ebx + 0x44]
push edx
call fcn.004c86b0
mov esi, dword [ebp - 0x7c]
add esp, 0xc
movsx eax, word [esi + 0x6e]
push eax
mov eax, dword [esi + 0x74]
push eax
mov eax, dword [ebx + 0x40]
push eax
call fcn.004c86b0
mov ax, word [esi + 0x6e]
mov edx, dword [ebp - 0x64]
mov word [ebx + 0x3a], ax
mov ax, word [esi + 0x6c]
mov word [ebx + 0x38], ax
mov eax, dword [ebp - 0x78]
mov ecx, eax
add esp, 0x10
mov ebx, dword [eax + 8]
mov dword [edx + 0xa8], ebx
mov eax, dword [eax + 0x10]
mov dword [edx + 0xac], eax
mov eax, dword [esi + 0x28]
mov edx, dword [ecx + 4]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov ebx, dword [ebp - 0x78]
mov esi, eax
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ebx + 8]
add esi, eax
mov eax, dword [ebp - 0x64]
cmp word [ecx + 0x6e], 0
mov dword [eax + 0xb0], esi
mov eax, dword [ebx + 0x10]
mov dword [edx + 0xb4], eax
je 0x46fcac
mov ebx, dword [ebp - 0x74]
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
test edx, edx
jne 0x47059a
mov edx, dword [ebp - 0x68]
cmp dword [edx + 0x14], 1
je 0x4705ba
mov eax, dword [ebp - 0x78]
add eax, 0x30
mov edx, dword [eax + 0xc]
mov ebx, dword [eax + 0x14]
lea eax, [edx + edx*2]
shl eax, 4
dec edx
lea edi, [eax + ebx - 0x30]
jle 0x4704dc
mov ecx, dword [ebp - 0x78]
test byte [ecx + 0x68], 4
jne 0x4704dc
mov eax, dword [edi + 4]
sub esi, eax
mov eax, dword [ebx + 4]
mov ebx, dword [ebx + 8]
mov dword [ebp - 0xcc], ebx
sub ebx, eax
mov dword [ebp - 0x84], ebx
mov ebx, dword [edi + 8]
add ebx, esi
cmp eax, 0x17
mov dword [ebp - 0x88], ebx
jg 0x4703ac
mov ecx, dword [ebp - 0x84]
sub ecx, 8
mov dword [ebp - 0x84], ecx
cmp esi, 0x17
jg 0x4703c0
mov edx, dword [ebp - 0x88]
add edx, 8
mov dword [ebp - 0x88], edx
mov ebx, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x88]
add ebx, 0x20
add ecx, 0x20
mov edx, dword [ebp - 0x64]
and ecx, 0xffffffc0
and ebx, 0xffffffc0
cmp ebx, dword [ebp - 0xcc]
mov dword [edx + 0xb0], ecx
setge dl
test eax, eax
setg al
and eax, 0xff
test eax, edx
je 0x470603
mov eax, dword [ebp - 0x64]
sub ebx, 0x40
mov dword [eax + 0xa8], ebx
cmp ecx, dword [edi + 8]
setle dl
test esi, esi
setg al
and eax, 0xff
test eax, edx
je 0x470428
lea esi, [ecx + 0x40]
mov ecx, dword [ebp - 0x64]
mov dword [ecx + 0xb0], esi
mov eax, dword [ebp - 0x84]
mov esi, dword [ebp - 0x7c]
sub ebx, eax
mov edx, dword [ebp - 0x64]
mov dword [esi + 0x90], ebx
mov edi, dword [ebp - 0x88]
mov eax, dword [edx + 0xb0]
sub eax, edi
mov dword [esi + 0x94], eax
jmp 0x47051e
neg eax
push edx
push 0
push eax
push esi
call fcn.00466e10
add esp, 0x10
jmp 0x46fd44
mov ebx, ecx
add ebx, 0x90
push eax
push eax
push ebx
push esi
call fcn.00467080
pop ecx
pop eax
push ebx
push edi
call fcn.00464030
add esp, 0x10
jmp 0x46fd33
mov eax, dword [ebp - 0x7c]
mov cx, word [eax + 0x6c]
push eax
movsx eax, cx
push eax
mov edi, dword [ebp - 0x70]
movsx eax, bx
add eax, 4
push eax
push edi
call fcn.0046ae80
add esp, 0x10
test eax, eax
mov dword [ebp - 0x6c], eax
je 0x47026d
jmp 0x46fec0
push eax
mov eax, dword [esi + 0xa4]
push eax
mov eax, dword [esi + 0xa0]
push eax
mov eax, ebx
add eax, 0x6c
push eax
call fcn.00466e10
add esp, 0x10
jmp 0x470210
mov ecx, dword [ebp - 0x64]
mov edx, dword [ecx + 0xa8]
mov ecx, esi
mov esi, dword [ebp - 0x64]
lea eax, [ecx + 0x20]
lea ebx, [edx + 0x20]
and eax, 0xffffffc0
and ebx, 0xffffffc0
mov dword [esi + 0xb0], eax
mov eax, dword [ebp - 0x7c]
mov dword [esi + 0xa8], ebx
sub ebx, edx
mov dword [eax + 0x90], ebx
mov eax, dword [esi + 0xb0]
sub eax, ecx
mov edx, dword [ebp - 0x7c]
mov dword [edx + 0x94], eax
sub esp, 0xc
mov esi, dword [ebp - 0x70]
push esi
call fcn.00463b90
add esp, 0x10
jmp 0x46fcac
mov ecx, dword [ebp - 0x78]
mov ebx, dword [esi + 8]
mov eax, ebx
mov edx, dword [ecx + 4]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x78]
mov ebx, eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
add ebx, eax
mov eax, dword [esi + 0xc]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov esi, dword [ebp - 0x78]
add ebx, 0x20
and ebx, 0xffffffc0
mov edi, dword [esi + 0x10]
add eax, edi
lea ecx, [eax + 0x20]
and ecx, 0xffffffc0
jmp 0x47015d
push eax
mov eax, dword [ebp - 0x70]
push ebx
add eax, 0x38
push eax
mov eax, dword [ebp - 0x78]
push eax
call edx
mov eax, dword [ebp - 0x64]
add esp, 0x10
mov esi, dword [eax + 0xb0]
jmp 0x47033d
mov ebx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebx + 0xa8]
mov edx, dword [eax + 0x74]
add edx, ecx
add edx, 0x20
and edx, 0xffffffc0
mov dword [ebx + 0xa8], edx
mov ebx, dword [ebp - 0x64]
mov eax, dword [eax + 0x78]
sub edx, ecx
add eax, esi
add eax, 0x20
and eax, 0xffffffc0
mov dword [ebx + 0xb0], eax
mov eax, dword [ebp - 0x7c]
mov dword [eax + 0x90], edx
mov eax, dword [ebx + 0xb0]
sub eax, esi
jmp 0x470515
mov edx, dword [ebp - 0x64]
mov dword [edx + 0xa8], ebx
jmp 0x470408
mov dword [ebp - 0x6c], 0x15
jmp 0x46fec0