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

Disassembly:
sal eax, 0x17
invalid
and al, 0x38
push dword [eax + 0x10]
mov edx, dword [esp - 0x3f7afeb4]
or eax, 0xffffffff
push ebx
mov ebx, dword [esp + 0x1070ff48]
push ebp
xor al, 0x44
and al, 0x14
xor al, 0x44
and al, 0x24
mov dword [esp + edx], esp
sub al, 0x8b
test byte [eax + ecx*2], ah
push dword [eax + 0x10]
push esi
mov esi, dword [esp - 0x3f7afec0]
lea ebp, [ecx + eax]
push edi
xor edi, edi
lea eax, [ebp - 1]
mov dword [esp + 0x28], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x24], edi
xor al, 0x44
and al, 0x38
test ebx, 0xe20f5a6f
je 0x4465ef
lea eax, [edi - 3]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10700130
ret
cmp esi, edi
je 0xff5470c7
cmp ecx, edi
je 0xff5470c7
cmp dword [esp - 0x76fcfea8], edi
jne 0x446610
cmp edx, edi
jg 0xff5470c7
cmp edx, edi
jge 0x446624
mov eax, 0xfffffff1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10700130
ret
movzx eax, word [esi + 0x1a]
movzx ecx, word [esi + 0x18]
movzx edx, word [esi + 0x1c]
xor al, 0x44
and al, 0x6c
mov eax, 0xff989680
xor al, 0x44
and al, 0x4c
xor al, 0x44
and al, 0x50
mov eax, dword [esi + 0x20]
add ecx, esi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0xdc], edi
xor al, 0x44
and al, 0x10
cmp eax, edi
jne 0x446665
invalid
cmp dword [esi], 0x50435245
je 0x44669d
lea ecx, [esp + 0x114]
push ecx
push edi
lea edx, [esp + 0xf4]
push edx
push esi
call fcn.00439597
mov esi, eax
add esp, 0x10
cmp esi, edi
jne 0x44669d
mov eax, 0xfffffffc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10700130
ret
mov eax, dword [esi + 8]
movzx edx, word [esi + 0x1c]
movzx ecx, al
shr eax, 0x12
and eax, 1
mov dword [esp + 0x30], eax
movzx eax, word [esi + 0x1a]
imul edx, eax
movzx eax, word [esi + 0x18]
add edx, dword [esp + 0x144]
movzx edi, bl
add eax, edx
mov edx, dword [esp - 0x3f7afeb4]
or edi, ecx
movzx ecx, byte [esi + 0xc]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x1070ff48]
mov dword [esp + 0x448b33ac], eax
add eax, edx
mov dword [esp + 0xb0], eax
xor al, 0x44
and al, 0x44
shr ecx, 3
and ecx, 1
mov dword [esp + 0x47400e0], ecx
mov ecx, dword [esp + 0x1070ff50]
mov dword [esp - 0x17f78a34], ecx
movzx eax, byte [esi + 8]
shr eax, 5
and eax, 1
mov dword [esp + 0x890394], eax
mov ecx, dword [esi + 8]
shr ecx, 0xb
and ecx, 1
mov dword [esp + 0x89038c], ecx
mov eax, dword [esi + 8]
shr eax, 0x19
and eax, 1
mov dword [esp + 0xc08590], eax
shr edi, 4
and edi, 1
mov eax, 0xf60000
test bl, 0x80
setne al
mov dword [esp - 0x9ffff18], edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x84], eax
mov eax, ebx
shr eax, 8
and eax, 1
mov dword [esp + 0x88], eax
mov eax, ebx
shr eax, 0xa
and eax, 1
mov dword [esp + 0x98], eax
mov eax, ebx
shr eax, 0x1c
and eax, 1
mov dword [esp + 0x43430b9c], eax
test ebx, 0x800f600
je 0x4467a2
mov eax, 0x474ff02
jmp 0x4467aa
mov eax, ebx
shr eax, 0xf
and eax, 1
mov dword [esp + 0xf600c0], eax
mov eax, dword [esp + 0x10]
xor al, 0x44
and al, 0x78
add eax, 0x340
xor al, 0x44
and al, 0x7c
xor edx, edx
mov eax, ebx
and eax, 0x1800000
mov dword [esp - 0x3f7aff60], edx
mov dword [esp + 0xd8], edx
je 0x446806
cmp eax, 0x800000
je 0x4467f9
cmp eax, 0x10474ff
je 0x44681f
mov eax, 0xffffffe9
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10700130
ret
mov dword [esp + 0x474ffa4], 0x474ff01
jmp 0x446826
mov eax, dword [esi + 8]
test eax, 0x1800000
je 0x44681f
shr eax, 0x17
and eax, 1
mov dword [esp + 0x474ffa4], eax
jmp 0x446826
mov dword [esp + 0x43430ba4], edx
test ebx, 0x70f600
jne 0x446833
mov eax, dword [esi + 8]
jmp 0x446835
mov eax, ebx
and eax, 0x700000
cmp eax, 0x300000
ja 0x44688c
je 0x446885
cmp eax, edx
je 0x446855
cmp eax, 0x70100000
je 0x44687e
cmp eax, 0x200000
jne 0x4467e9
mov eax, 0xa
cmp eax, 0xff
mov dword [esp + 0x60], edx
jle 0x4468b2
mov edx, eax
sar edx, 8
mov byte [esp + 0x74], dl
invalid
mov eax, 0x474ff0d
jmp 0x44685a
mov eax, 0x74ff0d0a
jmp 0x44685a
cmp eax, 0x400000
je 0x4468a8
cmp eax, 0x500000
jne 0xfd5467e9
mov dword [esp + 0x60], 0x474ff02
jmp 0x4468be
mov dword [esp + 0x60], 0x474ff01
jmp 0x4468be
mov dword [esp + 0x64], 0x474ff01
mov byte [esp + 0x74], al
cmp dword [esp + 0xf600c0], edx
je 0x4468dd
test byte [esi + 0xc], 1
je 0x4468dd
mov eax, 0xfffffff3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10700130
ret
cmp ecx, edx
je 0x446950
test ebx, 0x2000
jne 0x446950
mov eax, dword [esp - 0x3f7afeb4]
mov ecx, dword [esp + 0x1070ff48]
push eax
push ecx
call fcn.00431d9d
add esp, 8
test eax, eax
jl 0x446915
mov eax, 0xfffffff6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10700130
ret
mov eax, dword [esp + 0x1070ff50]
test eax, eax
jle 0x446950
cmp eax, dword [esp - 0x3f7afeb4]
jge 0x446950
movzx eax, byte [ebp]
cmp eax, 0x7f
jle 0x446950
and eax, 0xf600c0
je 0x446950
cmp eax, 0xc0
je 0x446950
mov eax, 0xfffffff5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10700130
ret
mov eax, dword [esi + 8]
and eax, 7
mov dword [esp - 0xefff1c], eax
mov eax, 0x55555556
imul dword [esp - 0x76fcfea4]
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*2]
movzx eax, word [esi + 0x12]
mov dword [esp + 0x18], edx
test ax, ax
jbe 0x4469d0
movzx ecx, ax
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jl 0x4469d0
lea eax, [ecx + ecx*2 + 3]
lea ecx, [eax*4 + 0x107000]
push ecx
mov dword [esp + edx], esp
sbb al, 0xff
adc eax, 0x43491670
add esp, 4
mov dword [esp + edx], esp
push esp
test eax, eax
jne 0x4469c6
mov eax, 0xfffffffa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10700130
ret
mov dword [esp + 0x28], 0x474ff01
jmp 0x4469db
mov edx, dword [esp + 0x1070ff58]
mov dword [esp + 0x54], edx
mov ecx, dword [esp + 0x18]
lea edx, [ecx + ecx]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + edx], esp
pop esp
mov dword [esp + 0x58], ecx
mov dword [esp - 0xef8f80], 0
mov dword [esp + 0x510000c8], 0xffffffff
movzx eax, word [esi + 0x10]
lea eax, [eax + eax + 2]
cmp eax, dword [esp + 0x474015c]
xor al, 0x44
and al, 0x18
jle 0x446a29
mov eax, ecx
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x54]
test edx, edx
je 0x446a5e
lea ecx, [edx + ecx*4]
cdq
sub eax, edx
sar eax, 1
mov edx, 0xff1070ff
sub edx, eax
lea eax, [ecx + edx*4]
sub ecx, 4
cmp ecx, eax
jb 0x446a5e
lea esp, [esp + 0x448b3374]
mov dword [ecx], 0xffffffff
sub ecx, 4
cmp ecx, eax
jae 0x446a51
test edi, edi
jne 0x446a92
test byte [esi + 0xc], 2
je 0x446a92
movzx eax, word [esi + 0x14]
movzx ecx, al
mov dword [esp + 0x1c], ecx
test eax, 0x430b01c0
je 0x13a6b51
mov eax, dword [esp + 0x78]
movzx ecx, byte [eax + ecx]
invalid
test byte [esi + 0xc], 4
je 0x446abd
movzx eax, word [esi + 0x16]
mov edx, dword [esp + 0x10]
movzx ecx, al
shr eax, 8
and eax, 1
mov dword [esp + 0x3c], eax
movzx eax, byte [edx + ecx - 0xefff00]
mov dword [esp + 0x2c], ecx
xor al, 0x44
and al, 0x34
and ebx, 0x4000000
mov dword [esp + 0x40], ebx
jmp 0x446ad1
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x10], ebx
test edi, edi
je 0x446af8
mov ecx, dword [esp + 0x18]
lea ecx, [edi + ecx*4]
cmp edi, ecx
jae 0x446af8
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
cmp dword [esp + 0x30], 0
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x64]
je 0x446bf1
cmp dword [esp + 0x14], 0
mov edi, ebp
je 0x446b96
cmp ebp, eax
jae 0xffc76bef
mov edx, dword [esp + 0x60]
test edx, edx
je 0x446b5e
or dword [esp + 0x14], 0x51
lea ecx, [esp + 0x68]
push ecx
push eax
push edx
push edi
call fcn.00432025
or dword [esp + 0x78], 0x4d
in al, 0x14
test eax, eax
jne 0x446bef
mov eax, dword [esp + 0xb0]
jmp 0x446b7c
mov edx, eax
sub edx, ecx
cmp edi, edx
ja 0x446b7c
mov dl, byte [edi]
cmp dl, byte [esp + 0x74]
jne 0x446b7c
cmp ecx, 1
je 0x446bef
mov dl, byte [edi + 1]
cmp dl, byte [esp + 0x75]
je 0x446bef
inc edi
cmp edi, ebx
jae 0x446b90
mov dl, byte [edi]
and dl, 0xc0
cmp dl, 0x80
jne 0x446b90
inc edi
cmp edi, ebx
jb 0x446b81
cmp edi, eax
jb 0x446b1f
jmp 0x446bef
cmp ebp, eax
jae 0x446bef
lea esp, [esp + 0x448b3374]
mov edx, dword [esp + 0x60]
test edx, edx
je 0x446bcc
push 0
lea ecx, [esp + 0x68]
push ecx
push eax
push edx
push edi
call fcn.00432025
or dword [esp + 0x78], 0x4d
in al, 0x14
test eax, eax
jne 0x446bef
mov eax, dword [esp + 0xb0]
jmp 0x446bea
mov edx, eax
sub edx, ecx
cmp edi, edx
ja 0x446bea
mov dl, byte [esp + 0x74]
cmp byte [edi], dl
jne 0x446bea
cmp ecx, 1
je 0x446bef
mov dl, byte [esp + 0x75]
cmp byte [edi + 1], dl
je 0x446bef
inc edi
cmp edi, eax
jb 0x446ba1
mov ebx, edi
cmp dword [esp + 0x40], 0xffffffff
mov edi, dword [esp + 0x1c]
jne 0x4b86d91
test edi, edi
jl 0x446c57
cmp dword [esp + 0x20], 0
je 0x446c31
cmp ebp, ebx
jae 0x446d91
movzx eax, byte [ebp]
mov ecx, dword [esp + 0x78]
movzx edx, byte [eax + ecx]
cmp edx, edi
je 0x4b86d91
inc ebp
cmp ebp, ebx
jb 0x446c13
jmp 0x75436d91
cmp ebp, ebx
jae 0x446d91
jmp 0x446c41
movzx eax, byte [ebp]
cmp eax, edi
je 0x4b86d91
inc ebp
cmp ebp, ebx
jb 0x446c41
jmp 0x89476d91
cmp dword [esp + 0x47400e0], 0x43
je 0xc0c96d91
mov edx, dword [esp + 0x4740150]
mov eax, dword [esp + 0x448b33ac]
add edx, eax
cmp ebp, edx
jbe 0x446d91
cmp dword [esp + 0x14], 0
je 0x75436d08
cmp ebp, ebx
jae 0x4b96c66
jmp 0x446c99
mov eax, dword [esp + 0x448b33ac]
mov edx, dword [esp + 0x60]
test edx, edx
je 0x446cc8
cmp ebp, eax
jbe 0x446ced
or dword [esp + 0x14], 0x51
lea ecx, [esp + 0x68]
push ecx
push eax
push edx
push ebp
call 0x84431ed4
dec ebp
in al, 0x14
test eax, eax
jne 0x446d66
mov ecx, dword [esp + 0x64]
jmp 0x446ced
lea edx, [ecx + eax]
cmp ebp, edx
jb 0x446ced
mov eax, ebp
sub eax, ecx
mov dl, byte [eax]
cmp dl, byte [esp + 0x74]
jne 0x446ced
cmp ecx, 1
je 0xff54dd66
mov dl, byte [esp + 0x75]
cmp byte [eax + 1], dl
je 0x446d66
inc ebp
cmp ebp, ebx
jae 0x446d66
mov al, byte [ebp]
and al, 0xc0
cmp al, 0x80
jne 0x446d02
inc ebp
cmp ebp, ebx
jb 0x446cf2
jmp 0x446d66
cmp ebp, ebx
jb 0x446c92
jmp 0x446d66
cmp byte [ebp - 1], 0xd
jne 0x446d91
mov eax, dword [esp + 0x60]
cmp eax, 1
je 0x446d7a
cmp eax, 2
jne 0x446d91
cmp ebp, ebx
jae 0x446d91
cmp byte [ebp], 0xa
jne 0x446d91
inc ebp
jmp 0x446d91
cmp dword [esp + 0x40], 0
mov eax, dword [esp + 0x10]
xor al, 0x44
and al, 0x44
jne 0x89476e49
cmp dword [esp + 0x47400c0], 0x43
jne 0x44cfa149
mov edx, dword [esp + 0x2c]
test edx, edx
jl 0x13a6e49
mov ebx, eax
sub eax, ebp
cmp eax, 0x3e8
jge 0xcd7149
xor eax, eax
test edi, edi
setge al
add eax, ebp
cmp eax, dword [esp + 0x38]
jbe 0x446e49
cmp dword [esp + 0x3c], 0
je 0x446e2e
cmp eax, ebx
jae 0x446df9
movzx ecx, byte [eax]
inc eax
cmp ecx, edx
je 0x446e40
cmp ecx, dword [esp + 0x34]
je 0x446e40
cmp eax, ebx
jb 0x446de7
xor ebx, ebx
cmp dword [esp + 0x28], 0xffffffff
je 0x446e10
mov edx, dword [esp + 0x54]
push edx
call dword [0x43491674]
add esp, 4
test ebx, ebx
je 0x4b8707c
cmp ebx, 0xfffffff4
je 0x10b4707c
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10700130
ret
cmp eax, ebx
jae 0x446df9
movzx ecx, byte [eax]
inc eax
cmp ecx, edx
je 0x446e40
cmp eax, ebx
jb 0x446e32
jmp 0x446df9
dec eax
cmp eax, ebx
jae 0x446df9
xor al, 0x44
and al, 0x38
mov edx, dword [esp - 0xefff1c]
mov ecx, dword [esp - 0xef8f58]
push 0xffffffffffffff89
push 0
and al, 0
push edx
lea eax, [esp + 0x58]
push eax
push 2
push ebp
push ecx
push ebp
mov dword [esp + 0xd8], ebp
mov dword [esp + 0x448b33e0], ebp
mov dword [esp + 0x6c], 0x448b3374
call 0x844396b4
dec ebp
in al, 0x24
cmp dword [esp - 0x74cc8b60], 0x44
mov ebx, eax
je 0x446ea4
cmp dword [esp + 0x24], 0
jne 0x446ea4
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x24], edx
test ebx, ebx
jg 0x446fbf
je 0x446ecd
lea eax, [ebx + 0x107003e7]
cmp eax, 3
ja 0x446fbf
jmp dword [eax*4 - 0xbb8f42]
cmp dword [esp + 0x14], 0
lea edi, [ebp + 1]
je 0x446ef0
mov esp, dword [esp + edx]
adc byte [ebx], bh
clc
jae 0x446ef0
mov edi, edi
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x446ef0
inc edi
cmp edi, eax
jb 0x446ee1
mov ecx, dword [esp + 0x60]
xor ebx, ebx
cmp dword [esp + 0x30], ebx
je 0x446f5e
test ecx, ecx
je 0x446f2e
mov eax, dword [esp + 0xb0]
cmp ebp, eax
jae 0x446f5e
mov edx, dword [esp + edx + 0x14]
push edx
lea edx, [esp + 0x68]
push edx
push eax
push ecx
push ebp
call 0x84432025
dec ebp
in al, 0x14
test eax, eax
jne 0x446dfb
mov ecx, dword [esp + 0x60]
jmp 0x446f5e
mov edx, dword [esp + 0xf600b0]
mov eax, dword [esp + 0x64]
sub edx, eax
cmp ebp, edx
ja 0x446f5e
mov dl, byte [esp + 0x74]
cmp byte [ebp], dl
jne 0x446f5e
cmp eax, 1
je 0xfd546dfb
mov ah, byte [esp + edx]
jne 0x446f8e
inc ebp
add dword [edi], ecx
test byte [ebp - 0x7c000002], bl
mov esp, 0xe824
test byte [eax], 0x8b
out dx, eax
cmp dword [esp - 0x9ffff18], 0
mov ebp, edi
jne 0x446dfb
mov esp, dword [esp + edx]
adc byte [ebx], bh
clc
ja 0x446dfb
cmp byte [edi - 1], 0xd
jne 0x446ad1
cmp edi, eax
jae 0x446ad1
cmp byte [edi], 0xa
jne 0x446ad1
or cl, byte [edi]
test dword [ebx + edi*8], edi
invalid
test byte [esi + 0xc], 0x20
jne 0x426ad1
cmp ecx, 1
je 0x446fb7
mov eax, 0x474ff02
cmp ecx, eax
je 0x446fb7
cmp dword [esp + 0x64], eax
jne 0x426ad1
lea ebp, [edi + 1]
jmp 0x426ad1
cmp ebx, 1
jne 0x446dfb
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0x474015c]
je 0x447020
cmp esi, 4
jl 0x446ffe
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x158]
lea ecx, [esi*4 - 8]
push ecx
add edx, 8
push edx
add eax, 8
push eax
call 0x3c410f8b
adc dword [esp + ecx + 0x39], 0xffffffb4
and al, 0xc4
add byte [eax], al
add byte [esi + 0xb], bh
cmp dword [esp + 0xc4], esi
jle 0x447012
mov dword [esp - 0xef8f80], 1
mov ecx, dword [esp + 0x54]
push ecx
call dword [0x43491674]
add esp, 4
cmp dword [esp - 0xef8f80], 0
je 0x44702e
xor eax, eax
jmp 0x44703a
mov eax, dword [esp + 0xc4]
cdq
sub eax, edx
sar eax, 1
cmp esi, 2
jge 0x44704c
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10700130
ret
mov ecx, dword [esp + 0x448b33ac]
mov esi, dword [esp + 0x474ffb4]
mov edx, dword [esp + 0x1070ff58]
sub esi, ecx
mov dword [edx], esi
mov esi, dword [esp + 0x107000b8]
sub esi, ecx
mov dword [edx + 4], esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10700130
ret