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

Disassembly:
sub esp, 0x24
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov dword [esp + 0x1c], ebp
cmp dword [ebp], 0
jne 0x41752a
call fcn.004169ac
test eax, eax
jne 0x41752a
push dword [ebp + 0x34]
call fcn.0040164a
cmp byte [0x46ad7c], 0
pop ecx
mov dword [esp + 0x28], eax
je 0x416bb7
cmp dword [esp + 0x38], 0x64
jne 0x416bb7
test byte [0x46a82b], 1
je 0x416bb7
mov bl, byte [0x46aeec]
mov ecx, dword [0x46aee4]
mov eax, dword [0x46aee0]
test bl, bl
je 0x416a2d
lea edx, [eax + ecx*4]
mov edx, dword [edx*4 + 0x45a468]
jmp 0x416a2f
mov edx, eax
mov esi, dword [0x46679c]
inc edx
cmp edx, esi
jl 0x416a4c
test bl, bl
je 0x416a48
lea eax, [eax + ecx*4]
mov eax, dword [eax*4 + 0x45a468]
sub eax, esi
jmp 0x416a5a
test bl, bl
je 0x416a5a
lea eax, [eax + ecx*4]
mov eax, dword [eax*4 + 0x45a468]
mov edi, dword [ebp + 0x34]
inc eax
cmp eax, edi
jne 0x416bb7
mov cx, word [0x46a83e]
xor edx, edx
test esi, esi
jle 0x416a85
mov eax, 0x46adc0
cmp word [eax], cx
jne 0x416a80
push 1
pop edx
inc eax
inc eax
dec esi
jne 0x416a78
mov si, word [edi*2 + 0x46adc0]
cmp si, cx
je 0x416bb0
mov eax, dword [0x46a828]
test ah, 0x80
je 0x416aad
cmp byte [0x46adb9], 0
jge 0x416bb0
mov bx, word [0x46a82c]
and eax, 1
test ax, ax
je 0x416ac5
cmp si, bx
jl 0x416bb0
mov cl, byte [0x46a836]
test cl, 8
je 0x416add
cmp si, word [0x46a838]
jl 0x416bb0
test cl, 0x10
jne 0x416aea
test edx, edx
jne 0x416bb0
mov dl, byte [0x46a82a]
test dl, 0x10
je 0x416b61
test dl, 1
jne 0x416b61
test cl, 0x20
je 0x416b61
cmp word [ebp + 0x84], 1
jle 0x416b61
test dl, 0x40
je 0x416f81
cmp byte [edi + 0x46ada8], 2
jb 0x416f81
test ax, ax
mov ax, word [0x46a83a]
je 0x416b3b
movsx ecx, ax
movsx edx, si
shl ecx, 1
sub edx, ecx
movsx ecx, bx
cmp edx, ecx
jl 0x416b61
test byte [0x46a828], 0x80
je 0x416f81
movsx eax, ax
movsx ecx, si
shl eax, 1
sub ecx, eax
movsx eax, word [0x46a832]
cmp ecx, eax
jne 0x416f81
movsx eax, word [ebp + 0x84]
push 0x64
sub eax, 0
mov esi, 0x1f4
pop edi
je 0x416b8d
dec eax
je 0x416b84
dec eax
jne 0x416b90
mov esi, 0x320
push 0xa
jmp 0x416b8f
mov esi, 0x280
push 0x14
jmp 0x416b8f
push 0x1e
pop edi
call fcn.00434945
cdq
idiv edi
cmp edx, 7
jne 0x416bb0
mov eax, dword [ebp + 0x34]
movsx eax, word [eax*2 + 0x46adc0]
cmp eax, esi
jl 0x416f81
and byte [0x46ad7c], 0
mov edx, dword [esp + 0x28]
cmp edx, 2
jl 0x416c18
xor eax, eax
mov dword [esp + 0x10], eax
inc eax
mov dword [esp + 0x18], eax
lea esi, [ebp + edx*4 + 8]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x20], esi
mov dl, byte [esi + eax]
and dl, 1
cmp dl, 1
jne 0x416be3
inc ecx
inc eax
cmp eax, 4
jl 0x416bd7
push 4
pop ebx
cmp ecx, ebx
jne 0x416c2b
test byte [0x46a828], bl
je 0x416c2b
cmp byte [ebp + 0x80], 0
je 0x416c2b
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x416c0c
push 0x64
pop eax
cmp eax, dword [ebp + 4]
jle 0x416c2b
xor eax, eax
jmp 0x417537
lea eax, [edx + 1]
cmp eax, 2
mov dword [esp + 0x10], eax
jl 0x416bc6
and dword [esp + 0x18], 0
jmp 0x416bcb
xor edi, edi
mov eax, esi
movzx esi, byte [eax]
xor ecx, ecx
mov edx, 0x4667b0
push 1
pop ebp
shl ebp, cl
test esi, ebp
je 0x416c44
add edi, dword [edx]
add edx, 4
inc ecx
cmp edx, 0x4667c4
jle 0x416c39
inc eax
dec ebx
jne 0x416c2f
movsx eax, word [0x46a830]
cmp edi, eax
jge 0x416c8c
test byte [0x46a828], 0x10
je 0x416c8c
mov edi, dword [esp + 0x1c]
cmp byte [edi + 0x80], 0
je 0x416c90
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x416c80
push 0x64
pop eax
cmp eax, dword [edi + 4]
jle 0x416c90
push 1
jmp 0x416f83
mov edi, dword [esp + 0x1c]
and byte [edi + 0x80], 0
mov eax, dword [0x46a828]
test ah, 0x80
je 0x416cdc
cmp byte [0x46adb9], 0
jl 0x416cdc
cmp byte [0x46aeec], 0
mov eax, dword [0x46aee0]
je 0x416cc8
mov ecx, dword [0x46aee4]
lea eax, [eax + ecx*4]
mov eax, dword [eax*4 + 0x45a468]
xor ecx, ecx
cmp eax, dword [edi + 0x34]
setne cl
dec ecx
and ecx, 0x79
dec ecx
mov eax, ecx
jmp 0x417537
cmp dword [esp + 0x38], 0
jne 0x416cea
push 0x64
jmp 0x416f83
mov ecx, dword [edi + 0x34]
mov cx, word [ecx*2 + 0x46adc0]
cmp cx, word [0x46a82c]
jge 0x416d06
test al, 1
jne 0x417525
test byte [0x46a82a], 0x20
push 0x78
mov dword [esp + 0x18], 0x1f4
pop ebx
jne 0x416d61
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], ebx
mov eax, str.__Pd
mov dl, byte [ecx]
and dl, 0xc
cmp dl, 0xc
jne 0x416d37
mov edx, dword [eax]
add dword [esp + 0x14], edx
add eax, 4
inc ecx
cmp eax, 0x4667b0
jl 0x416d27
test byte [0x46a829], 4
je 0x416d61
push dword [esp + 0x20]
call fcn.00424c9f
test eax, eax
pop ecx
je 0x416d61
add dword [esp + 0x14], 0xc8
mov eax, dword [0x46a836]
mov ecx, dword [esp + 0x14]
and eax, 4
mov dword [esp + 0x24], ecx
test ax, ax
mov dword [esp + 0x2c], eax
je 0x416d89
mov eax, dword [esp + 0x38]
add eax, 5
cmp ecx, eax
jle 0x416d89
mov dword [esp + 0x14], eax
test byte [0x46a82a], 4
mov bp, word [0x46a83e]
je 0x416de8
mov esi, 0x370
cmp bp, si
jne 0x416de8
push 0x7d
pop eax
cmp dword [esp + 0x14], eax
jg 0x416db0
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 0x34]
mov dx, word [ecx*2 + 0x46adc0]
cmp dx, si
jne 0x416e29
cmp dword [esp + 0x38], eax
jge 0x416dcf
cmp dword [edi + 4], eax
jge 0x417537
cmp dx, si
jne 0x416e29
cmp byte [ecx + 0x46adb4], 2
jne 0x416e29
cmp dword [esp + 0x38], eax
jge 0x416e29
jmp 0x417537
mov eax, dword [esp + 0x14]
cmp eax, ebx
jle 0x416df2
mov eax, ebx
mov ecx, dword [edi + 0x34]
mov dx, word [ecx*2 + 0x46adc0]
cmp dx, bp
jne 0x416e29
cmp dword [esp + 0x38], ebx
jge 0x416e11
cmp dword [edi + 4], ebx
jge 0x417537
cmp dx, bp
jne 0x416e29
cmp byte [ecx + 0x46adb4], 2
jne 0x416e29
cmp dword [esp + 0x38], ebx
jl 0x417537
mov eax, dword [esp + 0x28]
mov cl, byte [edi + eax*4 + 0xb]
lea eax, [edi + eax*4]
mov al, byte [eax + 0xa]
or ecx, eax
movsx eax, word [edi + 0x86]
and ecx, 0xc
dec eax
mov dword [esp + 0x28], ecx
je 0x416f11
dec eax
jne 0x416fe5
mov cl, byte [0x46aeec]
mov ebp, dword [0x46aee4]
mov eax, dword [esp + 0x18]
test cl, cl
je 0x416e73
lea eax, [eax + ebp*4]
mov eax, dword [eax*4 + 0x45a468]
mov dx, word [0x46a83e]
cmp word [eax*2 + 0x46adc0], dx
jne 0x416e9d
cmp dword [esp + 0x38], 0x78
jge 0x416e9d
mov eax, dword [esp + 0x18]
cmp dword [eax*4 + 0x46aea8], 0
jge 0x416f74
test cl, cl
mov ecx, dword [esp + 0x10]
je 0x416eb1
lea eax, [ecx + ebp*4]
mov eax, dword [eax*4 + 0x45a468]
jmp 0x416eb3
mov eax, ecx
cmp word [eax*2 + 0x46adc0], dx
jne 0x416feb
push 0x78
pop edx
cmp dword [esp + 0x38], edx
jge 0x416feb
cmp dword [ecx*4 + 0x46aea8], 0
jl 0x416feb
cmp word [esp + 0x2c], 0
je 0x416efe
cmp dword [esp + 0x38], 0x6e
jne 0x416efe
cmp dword [esp + 0x24], edx
jg 0x416efe
test byte [0x46a82a], 0x20
je 0x416feb
mov eax, dword [esp + 0x14]
cmp eax, edx
jle 0x417537
mov eax, edx
jmp 0x417537
cmp dword [esp + 0x28], 0
je 0x416fe5
cmp dword [edi + 4], 0x28
jg 0x416f89
cmp byte [0x46aeec], 0
mov ebp, dword [0x46aee4]
mov ecx, dword [esp + 0x18]
je 0x416f41
lea eax, [ecx + ebp*4]
mov eax, dword [eax*4 + 0x45a468]
jmp 0x416f43
mov eax, ecx
mov ax, word [eax*2 + 0x46adc0]
cmp ax, word [0x46a83e]
jne 0x416f8f
cmp dword [ecx*4 + 0x46aea8], 0x64
jl 0x416f8f
cmp dword [esp + 0x38], 0x78
jge 0x416f8f
call fcn.00434945
push 2
cdq
pop ecx
idiv ecx
test edx, edx
je 0x416f89
mov eax, dword [esp + 0x14]
cmp eax, 0x78
jle 0x417537
push 0x78
pop eax
jmp 0x417537
mov ebp, dword [0x46aee4]
mov eax, dword [esp + 0x1c]
cmp dword [eax + 4], 0x28
jg 0x416feb
cmp byte [0x46aeec], 0
mov ecx, dword [esp + 0x10]
je 0x416fb2
lea eax, [ecx + ebp*4]
mov eax, dword [eax*4 + 0x45a468]
jmp 0x416fb4
mov eax, ecx
mov dx, word [0x46a83e]
cmp word [eax*2 + 0x46adc0], dx
jne 0x416feb
cmp dword [ecx*4 + 0x46aea8], 0x64
jl 0x416feb
cmp dword [esp + 0x38], 0x78
jge 0x416feb
call fcn.00434945
push 2
cdq
pop ecx
idiv ecx
test edx, edx
jne 0x416f74
mov ebp, dword [0x46aee4]
mov ebx, dword [0x46a82a]
xor edx, edx
mov esi, ebx
and esi, 0x10
test si, si
je 0x41704f
xor ecx, ecx
cmp byte [0x46aeec], 0
je 0x417014
lea eax, [ecx + ebp*4]
mov eax, dword [eax*4 + 0x45a468]
jmp 0x417016
mov eax, ecx
mov di, word [0x46a83e]
cmp word [eax*2 + 0x46adc0], di
jne 0x41702f
test bh, 0x40
jne 0x41702f
push 1
pop edx
inc ecx
cmp ecx, 3
jl 0x416fff
test byte [0x46a829], 0x80
je 0x41704f
cmp byte [0x46adb9], 0
jl 0x41704f
test bh, 0x80
jne 0x41704f
push 1
pop edx
mov ecx, dword [esp + 0x1c]
mov ax, word [ecx + 0x86]
cmp ax, 2
mov dword [esp + 0x2c], eax
jne 0x4170c0
cmp byte [0x46aeec], 0
mov eax, dword [esp + 0x10]
je 0x41707b
lea eax, [eax + ebp*4]
mov eax, dword [eax*4 + 0x45a468]
mov di, word [0x46a83e]
cmp word [eax*2 + 0x46adc0], di
jne 0x4170c0
cmp dword [esp + 0x38], 0x78
jge 0x4170c0
mov eax, dword [esp + 0x10]
cmp dword [eax*4 + 0x46aea8], 0
jl 0x4170c0
test byte [0x46a836], 4
je 0x4170c0
cmp dword [esp + 0x38], 0x6e
jne 0x4170c0
cmp dword [esp + 0x24], 0x78
jg 0x4170c0
test bl, 0x20
jne 0x4170c0
push 1
pop edx
test edx, edx
jne 0x417176
test si, si
je 0x417176
test bl, 1
jne 0x417176
cmp dword [esp + 0x38], 0x78
jge 0x417176
cmp word [ecx + 0x84], 1
jle 0x417176
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x38], esi
jge 0x41717a
test bl, 0x40
je 0x417166
mov eax, dword [ecx + 0x34]
cmp byte [eax + 0x46ada8], 2
jb 0x417166
mov dl, byte [0x46a828]
mov cx, word [0x46a83a]
test dl, 1
je 0x41713a
movsx edi, word [eax*2 + 0x46adc0]
movsx ebx, cx
shl ebx, 1
sub edi, ebx
movsx ebx, word [0x46a82c]
cmp edi, ebx
jl 0x41717a
test dl, 0x80
je 0x417159
movsx eax, word [eax*2 + 0x46adc0]
movsx ecx, cx
shl ecx, 1
sub eax, ecx
movsx ecx, word [0x46a832]
cmp eax, ecx
je 0x41717a
push 0x78
pop eax
cmp esi, eax
jge 0x417537
jmp 0x41716f
cmp esi, 0x78
jge 0x416f81
mov eax, esi
jmp 0x417537
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
add eax, 5
mov ebx, dword [ecx + 4]
mov dword [esp + 0x14], eax
cmp eax, ebx
mov dword [esp + 0x30], ebx
jle 0x417537
cmp eax, esi
jg 0x417525
mov eax, ecx
xor edx, edx
push 0x78
movsx ecx, word [eax + 0x84]
sub ecx, edx
pop edi
je 0x4171c1
dec ecx
je 0x4171bd
dec ecx
jne 0x4171c3
push 0x28
pop edx
jmp 0x4171c3
push 0x14
jmp 0x4171ba
xor edx, edx
mov esi, dword [0x46a82a]
and esi, 0x20
test si, si
je 0x4171d4
lea edi, [ebx + edx]
xor ecx, ecx
mov eax, dword [esp + 0x20]
mov al, byte [eax + ecx]
and al, 0xc
cmp al, 0xc
jne 0x4171e6
lea edi, [ebx + edx]
inc ecx
cmp ecx, 4
jl 0x4171d6
movsx eax, word [esp + 0x2c]
dec eax
je 0x41736d
dec eax
jne 0x417414
test si, si
je 0x4172d1
mov edx, dword [esp + 0x20]
xor bl, bl
mov ecx, str.__Pd
mov al, byte [edx]
test al, 0xc
jne 0x41721f
test edi, edi
jne 0x41721f
mov edi, dword [ecx]
test al, 0x20
je 0x417225
mov bl, 1
add ecx, 4
inc edx
cmp ecx, 0x4667b0
jl 0x417213
add edi, 0x78
test byte [0x46a829], 4
je 0x417247
test bl, bl
jne 0x417247
add edi, 0xc8
mov eax, dword [esp + 0x18]
mov ecx, dword [eax*4 + 0x46aea8]
test ecx, ecx
jl 0x417286
cmp ecx, edi
jg 0x417286
cmp byte [0x46aeec], 0
je 0x41726f
lea eax, [eax + ebp*4]
mov ecx, dword [eax*4 + 0x45a468]
jmp 0x417271
mov ecx, eax
mov ax, word [ecx*2 + 0x46adc0]
cmp ax, word [0x46a83e]
je 0x417515
mov eax, dword [esp + 0x10]
mov ecx, dword [eax*4 + 0x46aea8]
test ecx, ecx
jl 0x417414
cmp ecx, edi
jg 0x417414
cmp byte [0x46aeec], 0
je 0x4172b6
lea eax, [eax + ebp*4]
mov ecx, dword [eax*4 + 0x45a468]
jmp 0x4172b8
mov ecx, eax
mov ax, word [0x46a83e]
cmp word [ecx*2 + 0x46adc0], ax
jne 0x417414
jmp 0x417515
mov ecx, dword [esp + 0x18]
cmp dword [ecx*4 + 0x46aea8], 0
jl 0x417306
cmp byte [0x46aeec], 0
je 0x4172f2
lea eax, [ecx + ebp*4]
mov ecx, dword [eax*4 + 0x45a468]
mov ax, word [0x46a83e]
cmp word [ecx*2 + 0x46adc0], ax
je 0x417515
mov eax, dword [esp + 0x10]
cmp dword [eax*4 + 0x46aea8], 0
jl 0x417414
cmp byte [0x46aeec], 0
je 0x41732d
lea eax, [eax + ebp*4]
mov ecx, dword [eax*4 + 0x45a468]
jmp 0x417331
mov ecx, dword [esp + 0x10]
mov ax, word [0x46a83e]
cmp word [ecx*2 + 0x46adc0], ax
jne 0x417414
test byte [0x46a836], 4
je 0x417515
cmp dword [esp + 0x38], 0x6e
jne 0x417515
cmp dword [esp + 0x24], 0x78
jle 0x417414
jmp 0x417515
cmp dword [esp + 0x28], 0
je 0x417414
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx*4 + 0x46aea8]
test eax, eax
jl 0x4173c4
cmp byte [0x46aeec], 0
je 0x41739a
lea ecx, [ecx + ebp*4]
mov ecx, dword [ecx*4 + 0x45a468]
mov dx, word [0x46a83e]
cmp word [ecx*2 + 0x46adc0], dx
jne 0x4173c4
cmp dword [esp + 0x14], edi
jg 0x4173c4
cmp dword [esp + 0x38], eax
je 0x417515
cmp edi, 0x78
jg 0x417515
mov eax, dword [esp + 0x10]
mov eax, dword [eax*4 + 0x46aea8]
test eax, eax
jl 0x417414
cmp byte [0x46aeec], 0
mov ecx, dword [esp + 0x10]
je 0x4173ea
lea ecx, [ecx + ebp*4]
mov ecx, dword [ecx*4 + 0x45a468]
mov dx, word [0x46a83e]
cmp word [ecx*2 + 0x46adc0], dx
jne 0x417414
cmp dword [esp + 0x14], edi
jg 0x417414
cmp dword [esp + 0x38], eax
je 0x417515
cmp edi, 0x78
jg 0x417515
mov ebx, dword [0x46a828]
push 0x3c
mov edx, ebx
pop esi
and edx, 0x100
test dx, dx
je 0x41751b
test bl, 0x80
je 0x4174e0
mov eax, dword [esp + 0x1c]
mov cx, word [0x46a83e]
mov eax, dword [eax + 0x34]
cmp word [eax*2 + 0x46adc0], cx
je 0x4174e0
cmp dword [esp + 0x38], 0x78
jg 0x4174e0
mov eax, dword [esp + 0x18]
mov eax, dword [eax*4 + 0x46aea8]
cmp eax, esi
jle 0x41749f
cmp byte [0x46aeec], 0
mov ecx, dword [esp + 0x18]
je 0x417484
lea ecx, [ecx + ebp*4]
mov ecx, dword [ecx*4 + 0x45a468]
movsx ecx, word [ecx*2 + 0x46adc0]
movsx edi, word [0x46a832]
add ecx, esi
cmp ecx, edi
jne 0x41749f
cmp dword [esp + 0x38], eax
je 0x417515
mov eax, dword [esp + 0x10]
mov eax, dword [eax*4 + 0x46aea8]
cmp eax, esi
jle 0x4174e0
cmp byte [0x46aeec], 0
mov ecx, dword [esp + 0x10]
je 0x4174c5
lea ecx, [ecx + ebp*4]
mov ecx, dword [ecx*4 + 0x45a468]
movsx ecx, word [ecx*2 + 0x46adc0]
movsx edi, word [0x46a832]
add ecx, esi
cmp ecx, edi
jne 0x4174e0
cmp dword [esp + 0x38], eax
je 0x417515
test dx, dx
je 0x41751b
test bl, 0x80
je 0x41751b
mov eax, dword [esp + 0x1c]
movsx edx, word [0x46a832]
mov eax, dword [eax + 0x34]
mov cx, word [eax*2 + 0x46adc0]
movsx eax, cx
add eax, esi
cmp eax, edx
jne 0x41751b
cmp cx, si
jle 0x41751b
cmp dword [esp + 0x38], 0x78
jg 0x41751b
mov eax, dword [esp + 0x14]
jmp 0x417537
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x30]
jle 0x417537
or eax, 0xffffffff
jmp 0x417537
push 1
mov ecx, ebp
push dword [esp + 0x3c]
call fcn.00419795
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 4