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

Disassembly:
sub esp, 0x34
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [eax + 0xc]
push ebx
push ebp
shl ecx, 0x10
push esi
mov esi, dword [eax + 0x38]
mov dword [esp + 0x38], ecx
mov eax, dword [edx + 0xec]
shl eax, 0x10
mov dword [esp + 0x3c], eax
mov al, byte [0x67fe91]
test al, al
push edi
mov dword [esp + 0x10], esi
je 0x4699e8
lea ecx, [esp + 0x3c]
push ecx
lea eax, [esi + 0x24]
call fcn.00460df0
add esp, 4
jmp 0x4699fc
lea edx, [esp + 0x3c]
push edx
mov eax, edx
push eax
lea ecx, [esi + 0x24]
push ecx
call fcn.0043ddc0
add esp, 0xc
mov ecx, dword [esi + 0x64]
mov bl, byte [esi + 2]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x18], ecx
mov ecx, dword [esi + 0x68]
mov dword [esp + 0x14], ecx
mov cl, bl
and cl, 2
mov ebp, eax
mov edi, edx
je 0x469a30
mov ebp, dword [esi + 0x90]
mov edi, dword [esi + 0x94]
add ebp, eax
add edi, edx
mov edx, dword [esp + 0x10]
mov esi, dword [edx + 0x78]
mov eax, dword [edx + 0x7c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], eax
shl esi, 0x10
shl eax, 0x10
dec esi
dec eax
mov dword [esp + 0x28], eax
test byte [edx], 1
mov dword [esp + 0x34], esi
je 0x469d79
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
mov edx, dword [edx + 4]
sub eax, esi
test cl, cl
mov dword [esp + 0x24], edx
je 0x469bf4
mov ebx, dword [esp + 0x54]
dec eax
mov ecx, eax
imul eax, dword [esp + 0x14]
imul ecx, dword [esp + 0x18]
add ecx, ebp
add eax, edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
mov eax, ebp
mov ecx, edi
sar eax, 0x10
sar ecx, 0x10
test eax, eax
jle 0x469ab5
test ecx, ecx
jle 0x469ab5
mov esi, dword [esp + 0x1c]
dec esi
cmp eax, esi
jge 0x469ab5
mov esi, dword [esp + 0x20]
dec esi
cmp ecx, esi
jl 0x469b28
mov esi, dword [esp + 0x50]
cmp dword [esp + 0x4c], esi
jge 0x469b28
mov esi, dword [esp + 0x10]
test byte [esi + 2], 1
je 0x469ae6
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 0x78]
push eax
mov ecx, esi
add ecx, 0x60
push ecx
push ebx
push edi
push ebp
mov ecx, edx
call fcn.00475f70
jmp 0x469af0
push ebx
push ecx
push eax
mov ecx, edx
call fcn.00475670
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x54]
test eax, eax
je 0x469b07
push 1
push ebx
push eax
call fcn.004634d0
add esp, 0xc
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
add edi, edx
mov edx, dword [esp + 0x24]
add ebp, esi
inc ecx
mov dword [esp + 0x4c], ecx
add ebx, 8
jmp 0x469a91
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x54], ebx
lea esi, [ebx + eax*8 - 8]
mov ebx, dword [esp + 0x10]
lea esp, [esp]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
sar eax, 0x10
sar ecx, 0x10
test eax, eax
jle 0x469b6c
test ecx, ecx
jle 0x469b6c
mov edx, dword [esp + 0x1c]
dec edx
cmp eax, edx
jge 0x469b6c
mov edx, dword [esp + 0x20]
dec edx
cmp ecx, edx
jl 0x469db7
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x4c], edx
jge 0x469efc
test byte [ebx + 2], 1
mov dword [esp + 0x38], esi
je 0x469ba9
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x78]
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x30]
lea eax, [ebx + 0x60]
push eax
push esi
push ecx
mov ecx, dword [esp + 0x34]
push edx
call fcn.00475f70
jmp 0x469bb5
push esi
push ecx
mov ecx, dword [esp + 0x2c]
push eax
call fcn.00475670
dec dword [esp + 0x50]
mov eax, dword [ebx + 0x54]
sub esi, 8
test eax, eax
je 0x469bd3
mov ecx, dword [esp + 0x38]
push 1
push ecx
push eax
call fcn.004634d0
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
sub eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
sub ecx, eax
mov dword [esp + 0x30], ecx
jmp 0x469b40
test bl, 1
je 0x469c0b
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
dec esi
dec ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 0x54]
mov ecx, eax
imul eax, dword [esp + 0x14]
imul ecx, dword [esp + 0x18]
add ecx, ebp
add eax, edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], eax
mov eax, ebp
mov ecx, edi
sar eax, 0x10
sar ecx, 0x10
test eax, eax
jl 0x469c45
test ecx, ecx
jl 0x469c45
cmp eax, dword [esp + 0x1c]
jge 0x469c45
cmp ecx, dword [esp + 0x20]
jl 0x469cb2
mov ebx, dword [esp + 0x4c]
cmp ebx, dword [esp + 0x50]
jge 0x469cb2
mov ebx, dword [esp + 0x10]
test byte [ebx + 2], 1
je 0x469c70
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax + 0x78]
push ecx
push esi
push edi
push ebp
mov ecx, edx
call fcn.004757f0
jmp 0x469c7a
push esi
push ecx
push eax
mov ecx, edx
call fcn.00475670
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x54]
test eax, eax
je 0x469c91
push 1
push esi
push eax
call fcn.004634d0
add esp, 0xc
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
add edi, edx
mov edx, dword [esp + 0x24]
add ebp, ebx
inc ecx
mov dword [esp + 0x4c], ecx
add esi, 8
jmp 0x469c27
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x38]
sub eax, ecx
mov dword [esp + 0x54], esi
lea esi, [esi + eax*8 - 8]
jmp 0x469cd0
mov ecx, dword [esp + 0x30]
mov eax, ebx
sar eax, 0x10
sar ecx, 0x10
test eax, eax
jl 0x469cf4
test ecx, ecx
jl 0x469cf4
cmp eax, dword [esp + 0x1c]
jge 0x469cf4
cmp ecx, dword [esp + 0x20]
jl 0x469db7
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x4c], edx
jge 0x469efc
mov edx, dword [esp + 0x10]
test byte [edx + 2], 1
mov dword [esp + 0x38], esi
je 0x469d2d
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x78]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
push edx
push esi
push eax
push ebx
call fcn.004757f0
jmp 0x469d39
push esi
push ecx
mov ecx, dword [esp + 0x2c]
push eax
call fcn.00475670
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x10]
dec eax
mov dword [esp + 0x50], eax
mov eax, dword [ecx + 0x54]
sub esi, 8
test eax, eax
je 0x469d60
mov edx, dword [esp + 0x38]
push 1
push edx
push eax
call fcn.004634d0
add esp, 0xc
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
sub ebx, edx
sub ecx, eax
mov dword [esp + 0x30], ecx
jmp 0x469cd0
test ebp, ebp
jl 0x469d81
cmp ebp, esi
jl 0x469d96
mov eax, ebp
cdq
idiv esi
test ebp, ebp
jge 0x469d8b
dec eax
imul eax, esi
sub ebp, eax
cmp ebp, esi
jne 0x469d96
xor ebp, ebp
test edi, edi
mov ecx, dword [esp + 0x28]
jl 0x469da2
cmp edi, ecx
jl 0x469db7
mov eax, edi
cdq
idiv ecx
test edi, edi
jge 0x469dac
dec eax
imul eax, ecx
sub edi, eax
cmp edi, ecx
jne 0x469db7
xor edi, edi
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
cmp edx, esi
jge 0x469efc
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x14]
sub esi, edx
test ecx, ecx
jle 0x469e04
cmp ebp, eax
jl 0x469de6
lea ecx, [ecx]
sub ebp, eax
cmp ebp, eax
jge 0x469de0
cmp ecx, 0x20000
jg 0x469df9
mov edx, esi
imul edx, ecx
add edx, ebp
cmp edx, eax
jl 0x469e37
sub eax, ebp
lea eax, [eax + ecx - 1]
cdq
idiv ecx
jmp 0x469e31
jge 0x469e37
test ebp, ebp
jg 0x469e16
lea ebx, [ebx]
add ebp, eax
test ebp, ebp
jle 0x469e10
cmp ecx, 0xfffe0000
jl 0x469e27
mov eax, esi
imul eax, ecx
add eax, ebp
jns 0x469e37
mov eax, ebp
sub eax, ecx
dec eax
cdq
idiv ecx
neg eax
cmp esi, eax
jle 0x469e37
mov esi, eax
test ebx, ebx
jle 0x469e6b
mov eax, dword [esp + 0x28]
cmp edi, eax
jl 0x469e49
sub edi, eax
cmp edi, eax
jge 0x469e43
cmp ebx, 0x20000
jg 0x469e5c
mov ecx, esi
imul ecx, ebx
add ecx, edi
cmp ecx, eax
jl 0x469e9c
mov edx, dword [esp + 0x28]
sub edx, edi
lea eax, [edx + ebx - 1]
cdq
idiv ebx
jmp 0x469e96
jge 0x469e9c
test edi, edi
jg 0x469e7b
mov eax, dword [esp + 0x28]
add edi, eax
test edi, edi
jle 0x469e75
cmp ebx, 0xfffe0000
jl 0x469e8c
mov eax, esi
imul eax, ebx
add eax, edi
jns 0x469e9c
mov eax, edi
sub eax, ebx
dec eax
cdq
idiv ebx
neg eax
cmp esi, eax
jle 0x469e9c
mov esi, eax
test esi, esi
jle 0x469efc
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
push ebx
push esi
lea ecx, [esp + 0x44]
push ecx
lea edx, [eax + 0x60]
push edx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], edi
call dword [eax + 0x58]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x54]
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
add esp, 0x10
test eax, eax
je 0x469edf
push esi
push ebx
push eax
call fcn.004634d0
add esp, 0xc
mov edx, dword [esp + 0x4c]
add edx, esi
lea ecx, [ebx + esi*8]
mov esi, dword [esp + 0x50]
cmp edx, esi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x54], ecx
jl 0x469dc7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret