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

Disassembly:
sub esp, 0xa4
push ebx
mov ebx, dword [esp + 0xb0]
add eax, edx
push ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb8]
push esi
mov esi, dword [esp + 0xb4]
mov ebp, dword [esi + 0x7370]
push edi
mov edi, dword [esi + 0x72b0]
add eax, ebx
mov dword [esp + 0x70], edi
mov edi, dword [esi + 0x72b4]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x7380]
add eax, ebp
mov dword [esp + 0x88], edi
mov edi, dword [esi + 0x72b8]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x6c], eax
mov dword [esp + 0x7c], edi
test ecx, ecx
je 0x46d8cd
mov edi, dword [esp + 0x10]
mov dword [esi + 0x7304], 1
mov ecx, dword [esi + 0x682c]
mov eax, dword [esi + 0x6830]
mov dword [esp + 0x50], ecx
mov ecx, dword [esi + 0x6834]
mov dword [esp + 0x58], ecx
sub edi, edx
lea ecx, [esp + 0x24]
mov dword [esp + 0x54], eax
call fcn.0046f420
cmp eax, 0xffffff88
jbe 0x46d1c1
mov eax, 0xffffffec
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa4
ret
mov eax, dword [esp + 0x28]
mov edi, dword [esi]
mov edx, dword [edi + 4]
lea ebx, [edx + eax]
mov eax, dword [esp + 0x24]
mov ecx, ebx
neg ecx
and ecx, 0x1f
shr eax, cl
lea ecx, [esp + 0x24]
mov dword [esp + 0x28], ebx
and eax, dword [edx*4 + 0x6fa230]
mov dword [esp + 0x38], eax
call fcn.0046f560
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
add edi, 8
mov dword [esp + 0x3c], edi
mov edi, dword [esi + 8]
mov edx, dword [edi + 4]
lea ebx, [edx + ecx]
mov ecx, ebx
neg ecx
and ecx, 0x1f
shr eax, cl
lea ecx, [esp + 0x24]
mov dword [esp + 0x28], ebx
and eax, dword [edx*4 + 0x6fa230]
mov dword [esp + 0x40], eax
call fcn.0046f560
mov eax, dword [esp + 0x28]
mov esi, dword [esi + 4]
mov edx, dword [esi + 4]
add edi, 8
mov dword [esp + 0x44], edi
lea edi, [edx + eax]
mov eax, dword [esp + 0x24]
mov ecx, edi
neg ecx
and ecx, 0x1f
shr eax, cl
lea ecx, [esp + 0x24]
mov dword [esp + 0x28], edi
and eax, dword [edx*4 + 0x6fa230]
mov dword [esp + 0x48], eax
call fcn.0046f560
lea eax, [esi + 8]
mov dword [esp + 0x4c], eax
jmp 0x46d270
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov esi, dword [ecx + edx*8]
mov ecx, dword [ecx + edx*8 + 4]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x48]
mov edx, dword [eax + ecx*8 + 4]
mov ebp, dword [eax + ecx*8]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x40]
mov eax, dword [ecx + edx*8]
mov edx, dword [ecx + edx*8 + 4]
mov dword [esp + 0xac], eax
mov ecx, esi
mov ebx, ebp
shr ecx, 0x10
shr eax, 0x10
shr ebx, 0x10
mov dword [esp + 0x74], esi
mov dword [esp + 0x80], ebp
mov byte [esp + 0x1b], cl
cmp al, 1
jbe 0x46d384
cmp dword [esp + 0xc4], 0
je 0x46d346
cmp al, 0x19
jb 0x46d346
mov edi, dword [esp + 0x28]
mov ecx, 0x20
movzx eax, al
sub ecx, edi
cmp eax, ecx
jae 0x46d2f1
mov ecx, eax
mov ebp, dword [esp + 0x24]
mov esi, eax
sub esi, ecx
mov ecx, edi
and ecx, 0x1f
shl ebp, cl
sub eax, esi
mov ecx, eax
neg ecx
and ecx, 0x1f
shr ebp, cl
mov ecx, esi
add edi, eax
mov dword [esp + 0x28], edi
shl ebp, cl
lea ecx, [esp + 0x24]
add ebp, edx
call fcn.0046f560
test esi, esi
je 0x46d372
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov ecx, edx
and ecx, 0x1f
shl eax, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
add edx, esi
mov dword [esp + 0x28], edx
add ebp, eax
jmp 0x46d372
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x24]
movzx eax, al
mov ecx, esi
and ecx, 0x1f
shl ebp, cl
mov ecx, eax
neg ecx
and ecx, 0x1f
shr ebp, cl
add esi, eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x28], esi
add ebp, edx
call fcn.0046f560
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ecx
jmp 0x46d3f0
xor ecx, ecx
cmp dword [esp + 0x78], ecx
sete cl
mov esi, ecx
test al, al
jne 0x46d3ab
test esi, esi
jne 0x46d39d
mov ebp, dword [esp + 0x50]
jmp 0x46d3f4
mov edx, dword [esp + 0x50]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x54], edx
jmp 0x46d3f0
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov ecx, edi
and ecx, 0x1f
shl eax, cl
inc edi
mov dword [esp + 0x28], edi
shr eax, 0x1f
add eax, esi
mov esi, dword [esp + 0x50]
add eax, edx
lea ebp, [esi - 1]
cmp eax, 3
je 0x46d3d6
mov ebp, dword [esp + eax*4 + 0x50]
xor ecx, ecx
test ebp, ebp
sete cl
add ebp, ecx
cmp eax, 1
je 0x46d3ec
mov edx, dword [esp + 0x54]
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], ebp
mov edi, dword [esp + 0x84]
test bl, bl
jbe 0x46d425
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov ecx, esi
and ecx, 0x1f
shl eax, cl
movzx edx, bl
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
add esi, edx
mov ecx, edi
mov dword [esp + 0x28], esi
lea edi, [eax + ecx]
movzx eax, byte [esp + 0x1b]
movzx edx, bl
add edx, eax
cmp edx, 0x14
mov dword [esp + 0x10], eax
jl 0x46d441
lea ecx, [esp + 0x24]
call fcn.0046f560
cmp byte [esp + 0x1b], 0
mov edx, dword [esp + 0x78]
mov esi, edx
jbe 0x46d472
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov ecx, ebx
and ecx, 0x1f
shl esi, cl
mov ecx, eax
neg ecx
and ecx, 0x1f
shr esi, cl
add ebx, eax
mov dword [esp + 0x28], ebx
add esi, edx
lea ecx, [esp + 0x24]
call fcn.0046f560
movzx ebx, byte [esp + 0x77]
mov eax, dword [esp + 0x28]
lea ecx, [ebx + eax]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
neg ecx
and ecx, 0x1f
mov edx, eax
shr edx, cl
movzx ecx, word [esp + 0x74]
and edx, dword [ebx*4 + 0x6fa230]
add ecx, edx
movzx edx, byte [esp + 0x83]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x10]
lea ebx, [edx + ecx]
mov ecx, ebx
neg ecx
and ecx, 0x1f
shr eax, cl
lea ecx, [esp + 0x24]
mov dword [esp + 0x28], ebx
and eax, dword [edx*4 + 0x6fa230]
movzx edx, word [esp + 0x80]
add edx, eax
mov dword [esp + 0x48], edx
call fcn.0046f560
movzx edx, byte [esp + 0xaf]
mov eax, dword [esp + 0x28]
lea ebx, [edx + eax]
mov eax, dword [esp + 0x24]
mov ecx, ebx
neg ecx
and ecx, 0x1f
shr eax, cl
movzx ecx, word [esp + 0xac]
and eax, dword [edx*4 + 0x6fa230]
mov edx, dword [esp + 0xa0]
add ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x28], ebx
lea ebx, [esi + eax]
lea ecx, [esi + edi]
mov dword [esp + 0xa0], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
lea ecx, [esi + edx]
mov eax, ebx
sub eax, ebp
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa8], ecx
cmp ecx, dword [esp + 0x6c]
ja 0x46d813
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add ecx, edx
mov edx, dword [esp + 0x20]
add edx, 0xffffffe0
cmp ecx, edx
ja 0x46d813
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
sub ecx, dword [esp + 0x1c]
add edx, 0x20
cmp ecx, edx
jb 0x46d813
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x1c]
mov dword [ecx], edx
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
cmp esi, 0x10
jbe 0x46d64f
mov edx, dword [esp + 0x14]
add esi, 0xfffffff0
add ecx, 0x10
mov dword [esp + 0x90], esi
add esi, ecx
add edx, 0x10
cmp dword [esp + 0x90], 0x10
mov dword [esp + 0x14], esi
mov esi, dword [edx]
mov dword [ecx], esi
mov esi, dword [edx + 4]
mov dword [ecx + 4], esi
mov esi, dword [edx + 8]
mov dword [ecx + 8], esi
mov esi, dword [edx + 0xc]
mov dword [ecx + 0xc], esi
jle 0x46d64f
add ecx, 0x10
add edx, 0x10
lea esp, [esp]
mov esi, dword [edx]
mov dword [ecx], esi
mov esi, dword [edx + 4]
mov dword [ecx + 4], esi
mov esi, dword [edx + 8]
mov dword [ecx + 8], esi
mov esi, dword [edx + 0xc]
mov dword [ecx + 0xc], esi
mov esi, dword [edx + 0x10]
add edx, 0x10
add ecx, 0x10
mov dword [ecx], esi
mov esi, dword [edx + 4]
mov dword [ecx + 4], esi
mov esi, dword [edx + 8]
mov dword [ecx + 8], esi
mov esi, dword [edx + 0xc]
mov dword [ecx + 0xc], esi
add ecx, 0x10
add edx, 0x10
cmp ecx, dword [esp + 0x14]
jb 0x46d610
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0xa8]
mov edx, ebx
sub edx, esi
mov dword [esp + 0x14], ecx
cmp ebp, edx
jbe 0x46d6b7
mov ecx, ebx
sub ecx, dword [esp + 0x88]
cmp ebp, ecx
jbe 0x46d67d
mov esi, 0xffffffec
jmp 0x46d858
mov ebp, dword [esp + 0x7c]
mov edx, ebp
sub edx, esi
add eax, edx
lea ecx, [eax + edi]
cmp ecx, ebp
ja 0x46d6a2
push edi
push eax
push ebx
call fcn.005f8180
mov esi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x46d858
sub ebp, eax
push ebp
push eax
push ebx
call fcn.005f8180
add esp, 0xc
add ebx, ebp
sub edi, ebp
mov eax, esi
jmp 0x46d6be
mov edi, dword [esp + 0x98]
mov esi, dword [esp + 0x9c]
cmp esi, 0x10
jb 0x46d736
cmp edi, 0x10
mov ecx, dword [eax]
mov dword [ebx], ecx
mov ecx, dword [eax + 4]
mov dword [ebx + 4], ecx
mov ecx, dword [eax + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [eax + 0xc]
lea edx, [edi + ebx]
mov dword [ebx + 0xc], ecx
jle 0x46d72d
lea ecx, [ebx + 0x10]
add eax, 0x10
mov edi, edi
mov esi, dword [eax]
mov dword [ecx], esi
mov esi, dword [eax + 4]
mov dword [ecx + 4], esi
mov esi, dword [eax + 8]
mov dword [ecx + 8], esi
mov esi, dword [eax + 0xc]
mov dword [ecx + 0xc], esi
mov esi, dword [eax + 0x10]
add eax, 0x10
add ecx, 0x10
mov dword [ecx], esi
mov esi, dword [eax + 4]
mov dword [ecx + 4], esi
mov esi, dword [eax + 8]
mov dword [ecx + 8], esi
mov esi, dword [eax + 0xc]
mov dword [ecx + 0xc], esi
add ecx, 0x10
add eax, 0x10
cmp ecx, edx
jb 0x46d6f0
mov esi, dword [esp + 0x10]
jmp 0x46d858
cmp esi, 8
jae 0x46d769
movzx edx, byte [eax]
mov ebp, dword [esi*4 + 0x6facc8]
mov byte [ebx], dl
movzx ecx, byte [eax + 1]
mov byte [ebx + 1], cl
movzx edx, byte [eax + 2]
mov byte [ebx + 2], dl
movzx ecx, byte [eax + 3]
mov byte [ebx + 3], cl
add eax, dword [esi*4 + 0x6faca8]
mov edx, dword [eax]
sub eax, ebp
jmp 0x46d770
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
cmp edi, 8
jbe 0x46d80d
lea ecx, [eax + 8]
lea edx, [edi - 8]
lea eax, [ebx + 8]
mov edi, eax
sub edi, ecx
cmp edi, 0x10
lea esi, [eax + edx]
jge 0x46d7af
sub ecx, eax
mov edx, dword [eax + ecx]
mov dword [eax], edx
mov edx, dword [eax + ecx + 4]
mov dword [eax + 4], edx
add eax, 8
cmp eax, esi
jb 0x46d793
mov esi, dword [esp + 0x10]
jmp 0x46d858
cmp edx, 0x10
mov edi, dword [ecx]
mov dword [eax], edi
mov edi, dword [ecx + 4]
mov dword [eax + 4], edi
mov edi, dword [ecx + 8]
mov dword [eax + 8], edi
mov edi, dword [ecx + 0xc]
mov dword [eax + 0xc], edi
jle 0x46d80d
add eax, 0x10
add ecx, 0x10
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x10]
add ecx, 0x10
add eax, 0x10
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
add eax, 0x10
add ecx, 0x10
cmp eax, esi
jb 0x46d7d0
mov esi, dword [esp + 0x10]
jmp 0x46d858
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x70]
push ecx
push edx
mov edx, dword [esp + 0xac]
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x34]
sub esp, 0x10
mov eax, esp
mov dword [eax], esi
mov dword [eax + 4], edi
mov dword [eax + 8], ebp
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x40]
call fcn.0046d000
add esp, 0x24
mov esi, eax
lea ecx, [esp + 0x24]
call fcn.0046f560
add dword [esp + 0x1c], esi
cmp esi, 0xffffff88
ja 0x46d87d
sub dword [esp + 0x8c], 1
je 0x46d88a
mov eax, dword [esp + 0x4c]
jmp 0x46d270
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa4
ret
lea ecx, [esp + 0x24]
call fcn.0046f560
cmp eax, 2
jl 0x46d1b1
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov dword [eax + 0x682c], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 0x6830], edx
mov dword [eax + 0x6834], ecx
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x20]
sub eax, ebp
mov esi, eax
sub ecx, ebx
cmp esi, ecx
jbe 0x46d8eb
mov eax, 0xffffffba
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa4
ret
test ebx, ebx
je 0x46d8fc
push esi
push ebp
push ebx
call fcn.005f4c50
add esp, 0xc
add ebx, esi
sub ebx, dword [esp + 0xbc]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0xa4
ret