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

Disassembly:
sub esp, 0x94
mov eax, dword [0x1854370]
xor eax, esp
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x98]
push ebx
push ebp
push esi
mov esi, edx
push edi
mov edi, ecx
mov ecx, dword [edi + 0x30]
sub eax, esi
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x34]
mov dword [esp + 0x4c], ecx
mov ecx, dword [ecx + esi*4]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x18]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
lea ebx, [esp + 0x88]
push ebx
push ecx
push eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x1c], esi
call edx
add esp, 0xc
cmp dword [edi + 0x10], 4
jne 0x169cdb8
mov eax, dword [esp + 0x8c]
neg eax
cmp eax, dword [esp + 0x94]
jle 0x169cdb8
mov dword [esp + 0x94], eax
mov eax, dword [edi + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push 0
push eax
call edx
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
lea eax, [ebx - 0x100]
cdq
and edx, 3
lea ebp, [edx + eax]
sar ebp, 2
add esp, 8
add ebp, 0x40
cmp ebx, 0x100
jle 0x169cdfe
add ebp, 0x100
jmp 0x169ce00
add ebp, ebx
cmp dword [esp + 0x28], 2
mov dword [esp + 0x50], ebp
jne 0x169ceda
mov eax, dword [esp + 0x20]
mov al, byte [eax + esi*2 + 3]
cmp al, 0xe8
je 0x169ce27
cmp al, 0xe4
je 0x169ce27
cmp al, 0xe6
jne 0x169ceda
mov ecx, dword [esp + 0x20]
mov al, byte [ecx + esi*2 + 5]
cmp al, 0x17
je 0x169ce63
cmp al, 0x18
je 0x169ce63
cmp al, 0x19
je 0x169ce63
cmp al, 0x1b
je 0x169ce63
cmp al, 0x1c
je 0x169ce63
cmp al, 0x1e
je 0x169ce63
cmp al, 0x1f
je 0x169ce63
cmp al, 0x21
je 0x169ce63
cmp al, 0x22
je 0x169ce63
cmp al, 0x23
je 0x169ce63
cmp al, 0x24
je 0x169ce63
cmp al, 0x6b
je 0x169ce63
cmp al, 0x7a
jne 0x169ceda
mov eax, dword [edi + 0x18]
mov edx, dword [eax]
mov ecx, dword [esp + 0x4c]
mov edx, dword [edx + 0x10]
mov esi, dword [esp + 0x94]
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx + eax*4 + 4]
mov eax, dword [edi + 0x18]
push ecx
push eax
call edx
mov eax, dword [edi + 0x18]
mov ecx, dword [eax]
mov eax, dword [esp + 0x58]
mov ecx, dword [ecx + 0x10]
add esi, dword [esp + 0x88]
lea edx, [esp + 0x7c]
push edx
mov edx, dword [esp + 0x20]
mov eax, dword [eax + edx*4 + 8]
push eax
mov eax, dword [edi + 0x18]
push eax
call ecx
add esi, dword [esp + 0x94]
lea ebx, [ebx + ebx*4]
add ebx, ebx
lea edx, [esi + ebp*2]
add esp, 0x18
cmp edx, ebx
jle 0x169ced6
mov eax, ebx
sub eax, esi
cdq
sub eax, edx
mov ebp, eax
sar ebp, 1
mov dword [esp + 0x50], ebp
mov esi, dword [esp + 0x10]
movzx eax, byte [edi + 0x14]
and eax, 0x80000001
jns 0x169ceea
dec eax
or eax, 0xfffffffe
inc eax
mov eax, dword [esp + 0x28]
setne byte [esp + 0x27]
xor edi, edi
mov byte [esp + 0x17], 0
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
cmp eax, 1
jl 0x169d2be
lea ecx, [esi*4 + 4]
lea edx, [esi*8 + 8]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x48], edx
lea edx, [ecx + esi*2 + 3]
mov dword [esp + 0x20], edx
mov dword [esp + 0x54], eax
jmp 0x169cf44
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x58]
push edx
mov edx, dword [esp + 0x50]
mov edx, dword [esi + edx]
push edx
push eax
mov eax, dword [ecx + 0x10]
call eax
mov ecx, dword [esp + 0x2c]
mov bl, byte [ecx]
xor esi, esi
add esp, 0xc
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], ebp
cmp bl, 0xc8
jae 0x169d07e
lea edx, [ebx - 0x1b]
cmp dl, 9
ja 0x169cf92
cmp ebp, 3
jge 0x169cf92
inc ebp
mov dword [esp + 0x10], ebp
cmp bl, 0xa
jb 0x169cfa0
cmp bl, 0x12
jbe 0x169d07a
cmp bl, 0x14
je 0x169d07a
cmp bl, 0x16
je 0x169d07a
cmp bl, 0x1d
je 0x169d07a
cmp bl, 0x20
je 0x169d07a
cmp bl, 0x17
je 0x169d076
cmp bl, 0x1b
je 0x169d076
cmp bl, 0x1c
je 0x169d076
cmp bl, 0x1e
je 0x169d076
cmp bl, 0x1f
je 0x169d076
cmp bl, 0x21
jb 0x169cffb
cmp bl, 0x24
jbe 0x169d076
cmp bl, 9
je 0x169d072
cmp bl, 0x67
je 0x169d072
cmp bl, 0x76
je 0x169d072
cmp bl, 0x18
je 0x169d06e
cmp bl, 0x6b
je 0x169d06e
cmp bl, 0x7a
je 0x169d06e
cmp bl, 0x19
jne 0x169d07e
mov bl, 0xe4
mov ebp, dword [esp + 0x5c]
cmp bl, byte [esp + 0x17]
je 0x169d0b7
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
jmp 0x169d0bb
mov bl, 0xe8
jmp 0x169d020
mov bl, 0xde
jmp 0x169d088
mov bl, 0xe6
jmp 0x169d020
mov bl, 0xdc
jmp 0x169d088
cmp bl, 0xdc
je 0x169d088
cmp bl, 0xde
jne 0x169d020
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push 1
push eax
call edx
mov ecx, dword [esp + 0x6c]
add ecx, ebp
mov ebp, dword [esp + 0x64]
add esp, 8
cmp ecx, eax
jle 0x169d024
mov dword [esp + 0x10], ebp
jmp 0x169d024
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
movzx edx, bl
add edx, 0xffffff38
cmp edx, 0x22
ja case.0x169d0d8.201
movzx edx, byte [edx + 0x169d314]
jmp dword [edx*4 + 0x169d2d8]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x38]
sub edx, ebp
mov esi, edi
add edx, eax
sub esi, ecx
add dword [esp + 0x1c], edx
jmp 0x169d1b7
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x60]
sub edx, ebp
add edx, dword [esp + 0x30]
mov esi, edi
add dword [esp + 0x1c], edx
cdq
sub eax, edx
sub esi, ecx
sar eax, 1
add esi, eax
jmp 0x169d1b7
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
mov esi, dword [esp + 0x34]
sub esi, dword [esp + 0x60]
mov edx, dword [esp + 0x38]
sub edx, ebp
sub esi, ecx
add edx, eax
add esi, edi
add dword [esp + 0x1c], edx
jmp 0x169d1b7
mov esi, dword [esp + 0x10]
neg esi
jmp case.0x169d0d8.201
mov esi, dword [esp + 0x10]
jmp case.0x169d0d8.201
mov edx, dword [esp + 0x10]
neg edx
mov dword [esp + 0x1c], edx
mov esi, edi
sub esi, ecx
jmp 0x169d1ad
mov eax, dword [esp + 0x10]
neg eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
sub eax, ebp
sub eax, dword [esp + 0x64]
mov esi, edi
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x60]
sub esi, ecx
cdq
sub eax, edx
sar eax, 1
add esi, eax
jmp 0x169d1b7
mov edx, dword [esp + 0x10]
neg edx
mov dword [esp + 0x1c], edx
mov esi, dword [esp + 0x34]
sub esi, dword [esp + 0x60]
sub esi, ecx
add esi, edi
sub eax, ebp
sub eax, dword [esp + 0x64]
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
add ebp, dword [esp + 0x1c]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x3c]
add ecx, esi
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0x70], edi
cmp edi, ecx
jl 0x169d1fb
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
cmp eax, ebp
jl 0x169d207
mov dword [esp + 0x74], ebp
add ecx, dword [esp + 0x60]
add edi, dword [esp + 0x34]
cmp edi, ecx
jle 0x169d215
mov ecx, edi
mov edi, dword [esp + 0x70]
add eax, dword [esp + 0x38]
add ebp, dword [esp + 0x64]
sub ecx, edi
cmp eax, ebp
jg 0x169d229
mov eax, ebp
mov edx, dword [esp + 0x74]
sub eax, edx
cmp byte [esp + 0x27], 0
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x30], edx
mov edx, dword [ecx + 0x3c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
mov byte [esp + 0x17], bl
je 0x169d277
mov dword [eax + edx], esi
mov edx, dword [ecx + 0x3c]
mov esi, dword [esp + 0x1c]
mov dword [eax + edx + 4], esi
jmp 0x169d293
sub esi, dword [esp + 0x98]
mov dword [eax + edx], esi
mov edx, dword [esp + 0x1c]
sub edx, dword [esp + 0x9c]
mov esi, dword [ecx + 0x3c]
mov dword [eax + esi + 4], edx
mov edx, dword [ecx + 0x38]
mov ecx, dword [esp + 0x28]
add dword [esp + 0x20], 2
mov dword [ecx + edx], 0
add eax, 8
add ecx, 4
dec dword [esp + 0x54]
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], ecx
jne 0x169cf40
mov ecx, dword [esp + 0xa0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.016664c7
add esp, 0x94
ret