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

Disassembly:
sub esp, 0x118
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x134]
or eax, 0xffffffff
push ebx
mov ebx, dword [esp + 0x130]
push ebp
mov dword [esp + 0x10], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x130]
push esi
mov esi, dword [esp + 0x128]
lea ebp, [ecx + eax]
push edi
xor edi, edi
lea eax, [ebp - 1]
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], eax
test ebx, 0xfe0f5a6f
je 0x44764b
lea eax, [edi - 3]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
cmp esi, edi
je 0x447f88
cmp ecx, edi
je 0x447f88
cmp dword [esp + 0x140], edi
jne 0x44766c
cmp edx, edi
jg 0x447f88
cmp edx, edi
jge 0x447680
mov eax, 0xfffffff1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
mov eax, 0x989680
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0xc0], edi
mov dword [esp + 0x14], eax
cmp eax, edi
jne 0x4476a7
mov dword [esp + 0x14], 0x480bc0
cmp dword [esi], 0x50435245
je 0x4476df
lea ecx, [esp + 0xd8]
push ecx
push edi
lea edx, [esp + 0x108]
push edx
push esi
call fcn.0043b3a9
mov esi, eax
add esp, 0x10
cmp esi, edi
jne 0x4476df
mov eax, 0xfffffffc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
mov eax, dword [esi + 8]
movzx edx, word [esi + 0x1c]
movzx ecx, al
shr eax, 0x12
and eax, 1
mov dword [esp + 0x28], eax
movzx eax, word [esi + 0x1a]
imul edx, eax
movzx eax, word [esi + 0x18]
add edx, dword [esp + 0x12c]
movzx edi, bl
add eax, edx
mov edx, dword [esp + 0x134]
or edi, ecx
movzx ecx, byte [esi + 0xc]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x98], eax
add eax, edx
mov dword [esp + 0x9c], eax
mov dword [esp + 0x38], eax
shr ecx, 3
and ecx, 1
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0x138]
mov dword [esp + 0xb0], ecx
movzx eax, byte [esi + 8]
shr eax, 5
and eax, 1
mov dword [esp + 0x80], eax
mov ecx, dword [esi + 8]
shr ecx, 0xb
and ecx, 1
mov dword [esp + 0x78], ecx
mov eax, dword [esi + 8]
shr eax, 0x19
and eax, 1
mov dword [esp + 0x7c], eax
shr edi, 4
and edi, 1
mov eax, 0
test bl, 0x80
setne al
xor edx, edx
mov dword [esp + 0xd4], edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x8c], edx
mov dword [esp + 0xbc], edx
mov dword [esp + 0x70], eax
mov eax, ebx
shr eax, 8
and eax, 1
mov dword [esp + 0x74], eax
mov eax, ebx
shr eax, 0xa
and eax, 1
mov dword [esp + 0x84], eax
mov eax, ebx
shr eax, 0xf
and eax, 1
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x64], eax
add eax, 0x340
mov dword [esp + 0x68], eax
mov eax, ebx
and eax, 0x1800000
je 0x44781e
cmp eax, 0x800000
je 0x447811
cmp eax, 0x1000000
je 0x447837
mov eax, 0xffffffe9
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
mov dword [esp + 0x90], 1
jmp 0x44783e
mov eax, dword [esi + 8]
test eax, 0x1800000
je 0x447837
shr eax, 0x17
and eax, 1
mov dword [esp + 0x90], eax
jmp 0x44783e
mov dword [esp + 0x90], edx
test ebx, 0x700000
jne 0x44784b
mov eax, dword [esi + 8]
jmp 0x44784d
mov eax, ebx
and eax, 0x700000
cmp eax, 0x300000
ja 0x4478a4
je 0x44789d
cmp eax, edx
je 0x44786d
cmp eax, 0x100000
je 0x447896
cmp eax, 0x200000
jne 0x447801
mov eax, 0xa
cmp eax, 0xff
mov dword [esp + 0x58], edx
jle 0x4478ca
mov edx, eax
sar edx, 8
mov byte [esp + 0x60], dl
mov dword [esp + 0x5c], 2
mov byte [esp + 0x61], al
xor edx, edx
jmp 0x4478d6
mov eax, 0xd
jmp 0x447872
mov eax, 0xd0a
jmp 0x447872
cmp eax, 0x400000
je 0x4478c0
cmp eax, 0x500000
jne 0x447801
mov dword [esp + 0x58], 2
jmp 0x4478d6
mov dword [esp + 0x58], 1
jmp 0x4478d6
mov dword [esp + 0x5c], 1
mov byte [esp + 0x60], al
cmp dword [esp + 0x88], edx
je 0x4478f5
test byte [esi + 0xc], 1
je 0x4478f5
mov eax, 0xfffffff3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
cmp ecx, edx
je 0x447963
test ebx, 0x2000
jne 0x447963
mov ebx, dword [esp + 0x134]
mov eax, dword [esp + 0x130]
push ebx
push eax
call fcn.00433c33
add esp, 8
test eax, eax
jl 0x44792d
mov eax, 0xfffffff6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
mov eax, dword [esp + 0x138]
test eax, eax
jle 0x447963
cmp eax, ebx
jge 0x447963
movzx eax, byte [ebp]
cmp eax, 0x7f
jle 0x447963
and eax, 0xc0
je 0x447963
cmp eax, 0xc0
je 0x447963
mov eax, 0xfffffff5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
mov eax, dword [esi + 8]
and eax, 7
mov dword [esp + 0xd0], eax
mov eax, 0x55555556
imul dword [esp + 0x144]
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ebx, [eax + eax*2]
movzx eax, word [esi + 0x12]
test ax, ax
jbe 0x4479db
movzx ecx, ax
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jl 0x4479db
lea ebx, [ecx + ecx*2 + 3]
lea ecx, [ebx*4]
push ecx
call dword [0x48c650]
add esp, 4
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x4479d1
mov eax, 0xfffffffa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
mov dword [esp + 0x20], 1
jmp 0x4479e6
mov edx, dword [esp + 0x140]
mov dword [esp + 0x4c], edx
lea ecx, [ebx + ebx]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
xor ecx, ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0xac], 0xffffffff
movzx eax, word [esi + 0x10]
lea eax, [eax + eax + 2]
cmp eax, dword [esp + 0x144]
mov dword [esp + 0x34], eax
jle 0x447a2b
mov eax, ebx
mov dword [esp + 0x34], ebx
mov edx, dword [esp + 0x4c]
cmp edx, ecx
je 0x447a5e
lea ebx, [edx + ebx*4]
cdq
sub eax, edx
sar eax, 1
mov edx, 1
sub edx, eax
lea eax, [ebx + edx*4]
sub ebx, 4
cmp ebx, eax
jb 0x447a5e
jmp 0x447a51
mov dword [ebx], 0xffffffff
sub ebx, 4
cmp ebx, eax
jae 0x447a51
cmp edi, ecx
jne 0x447a92
test byte [esi + 0xc], 2
je 0x447a92
movzx eax, word [esi + 0x14]
movzx edx, al
mov dword [esp + 0x18], edx
test eax, 0x100
je 0x447b22
mov eax, dword [esp + 0x64]
movzx ecx, byte [eax + edx]
mov dword [esp + 0x1c], 1
mov dword [esp + 0x18], ecx
test byte [esi + 0xc], 4
je 0x447abd
movzx eax, word [esi + 0x16]
mov edx, dword [esp + 0x14]
movzx ecx, al
shr eax, 8
and eax, 1
mov dword [esp + 0x24], eax
movzx eax, byte [edx + ecx + 0x100]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x14], ebx
test edi, edi
je 0x447ae4
mov ecx, dword [esp + 0x34]
lea ecx, [edi + ecx*4]
cmp edi, ecx
jae 0x447ae4
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
cmp dword [esp + 0x28], 0
mov eax, dword [esp + 0x9c]
je 0x447b54
mov edi, ebp
cmp ebp, eax
jae 0x447b52
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x447b2b
mov edx, dword [esp + 0x10]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
push edi
call fcn.00433ebb
add esp, 0x14
test eax, eax
jne 0x447b52
mov eax, dword [esp + 0x9c]
jmp 0x447b4d
mov dword [esp + 0x1c], ecx
jmp 0x447a92
mov ecx, dword [esp + 0x5c]
mov edx, eax
sub edx, ecx
cmp edi, edx
ja 0x447b4d
mov dl, byte [edi]
cmp dl, byte [esp + 0x60]
jne 0x447b4d
cmp ecx, 1
je 0x447b52
mov cl, byte [edi + 1]
cmp cl, byte [esp + 0x61]
je 0x447b52
inc edi
cmp edi, eax
jb 0x447af8
mov ebx, edi
mov edi, dword [esp + 0x18]
test edi, edi
jl 0x447be5
cmp dword [esp + 0x1c], 0
je 0x447bab
cmp ebp, ebx
jae 0x447ca4
mov edi, edi
movzx edx, byte [ebp]
mov eax, dword [esp + 0x64]
movzx ecx, byte [edx + eax]
cmp ecx, edi
je 0x447ca4
inc ebp
cmp dword [esp + 0x10], 0
je 0x447ba2
mov dl, byte [ebp]
and dl, 0xc0
cmp dl, 0x80
jne 0x447ba2
mov al, byte [ebp + 1]
inc ebp
and al, 0xc0
cmp al, 0x80
je 0x447b98
cmp ebp, ebx
jb 0x447b71
jmp 0x447ca4
cmp ebp, ebx
jae 0x447ca4
movzx ecx, byte [ebp]
cmp ecx, edi
je 0x447ca4
inc ebp
cmp dword [esp + 0x10], 0
je 0x447bdc
mov dl, byte [ebp]
and dl, 0xc0
cmp dl, 0x80
jne 0x447bdc
mov al, byte [ebp + 1]
inc ebp
and al, 0xc0
cmp al, 0x80
je 0x447bd2
cmp ebp, ebx
jb 0x447bb3
jmp 0x447ca4
cmp dword [esp + 0xcc], 0
je 0x447ca4
mov ecx, dword [esp + 0x138]
mov eax, dword [esp + 0x98]
lea edx, [eax + ecx]
cmp ebp, edx
jbe 0x447ca4
cmp ebp, ebx
ja 0x447c85
jmp 0x447c19
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x447c40
cmp ebp, eax
jbe 0x447c64
mov edx, dword [esp + 0x10]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
push ebp
call fcn.00433d6a
add esp, 0x14
test eax, eax
jne 0x447c85
jmp 0x447c64
mov ecx, dword [esp + 0x5c]
add eax, ecx
cmp ebp, eax
jb 0x447c64
mov dl, byte [esp + 0x60]
mov eax, ebp
sub eax, ecx
cmp byte [eax], dl
jne 0x447c64
cmp ecx, 1
je 0x447c85
mov cl, byte [esp + 0x61]
cmp byte [eax + 1], cl
je 0x447c85
inc ebp
cmp dword [esp + 0x10], 0
je 0x447c81
mov dl, byte [ebp]
and dl, 0xc0
cmp dl, 0x80
jne 0x447c81
mov al, byte [ebp + 1]
inc ebp
and al, 0xc0
cmp al, 0x80
je 0x447c77
cmp ebp, ebx
jbe 0x447c12
cmp byte [ebp - 1], 0xd
jne 0x447ca4
mov eax, dword [esp + 0x58]
cmp eax, 1
je 0x447c99
cmp eax, 2
jne 0x447ca4
cmp ebp, ebx
jae 0x447ca4
cmp byte [ebp], 0xa
jne 0x447ca4
inc ebp
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x38], ebx
test edx, edx
jl 0x447d4a
mov ecx, ebx
sub ecx, ebp
cmp ecx, 0x3e8
jge 0x447d4a
cmp dword [esp + 0x88], 0
jne 0x447d4a
xor eax, eax
test edi, edi
setge al
add eax, ebp
cmp eax, dword [esp + 0x30]
jbe 0x447d4a
cmp dword [esp + 0x24], 0
je 0x447d2f
cmp eax, ebx
jae case.0x447d9b.999
jmp 0x447cf1
movzx ecx, byte [eax]
inc eax
cmp ecx, edx
je 0x447d41
cmp ecx, dword [esp + 0x2c]
je 0x447d41
cmp eax, ebx
jb 0x447cf1
xor ebx, ebx
cmp dword [esp + 0x20], 0
je 0x447d1a
mov edx, dword [esp + 0x4c]
push edx
call dword [0x48c654]
add esp, 4
test ebx, ebx
je 0x447f56
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
cmp eax, ebx
jae case.0x447d9b.999
movzx ecx, byte [eax]
inc eax
cmp ecx, edx
je 0x447d41
cmp eax, ebx
jb 0x447d33
jmp case.0x447d9b.999
dec eax
cmp eax, ebx
jae case.0x447d9b.999
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0x94]
push 0
push 0
push 0
push edx
lea eax, [esp + 0x50]
push eax
push 2
push ebp
push ecx
push ebp
mov dword [esp + 0xc4], ebp
mov dword [esp + 0x64], 0
call fcn.0043b4b8
mov ebx, eax
add esp, 0x24
test ebx, ebx
jg case.default.0x447d9b
je case.0x447d9b.998
lea eax, [ebx + 0x3e7]
cmp eax, 3
ja case.default.0x447d9b
jmp dword [eax*4 + 0x447f99]
mov edi, dword [esp + 0xa0]
jmp 0x447dd0
cmp dword [esp + 0x10], 0
lea edi, [ebp + 1]
je 0x447dd0
mov eax, dword [esp + 0x14]
cmp edi, eax
jae 0x447dd0
lea esp, [esp]
mov dl, byte [edi]
and dl, 0xc0
cmp dl, 0x80
jne 0x447dd0
inc edi
cmp edi, eax
jb 0x447dc1
mov ecx, dword [esp + 0x58]
xor ebx, ebx
cmp dword [esp + 0x28], ebx
je 0x447e3e
test ecx, ecx
je 0x447e0e
mov eax, dword [esp + 0x9c]
cmp ebp, eax
jae 0x447e3e
mov edx, dword [esp + 0x10]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
push ebp
call fcn.00433ebb
add esp, 0x14
test eax, eax
jne 0x447d05
mov ecx, dword [esp + 0x58]
jmp 0x447e3e
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x5c]
sub edx, eax
cmp ebp, edx
ja 0x447e3e
mov dl, byte [esp + 0x60]
cmp byte [ebp], dl
jne 0x447e3e
cmp eax, 1
je 0x447d05
mov al, byte [esp + 0x61]
cmp byte [ebp + 1], al
je 0x447d05
cmp dword [esp + 0xd4], 0
mov ebp, edi
jne 0x447d05
mov eax, dword [esp + 0x14]
cmp edi, eax
ja 0x447d05
cmp byte [edi - 1], 0xd
jne 0x447abd
cmp edi, eax
jae 0x447abd
cmp byte [edi], 0xa
jne 0x447abd
test byte [esi + 0xc], 0x20
jne 0x447abd
cmp ecx, 1
je 0x447e97
mov eax, 2
cmp ecx, eax
je 0x447e97
cmp dword [esp + 0x5c], eax
jne 0x447abd
lea ebp, [edi + 1]
jmp 0x447abd
cmp ebx, 1
jne 0x447d05
cmp dword [esp + 0x20], 0
mov esi, dword [esp + 0x144]
je 0x447efd
cmp esi, 4
jl 0x447ede
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x140]
lea ecx, [esi*4 - 8]
push ecx
add edx, 8
push edx
add eax, 8
push eax
call fcn.00412990
add esp, 0xc
cmp dword [esp + 0xa8], esi
jle 0x447eef
mov dword [esp + 0x6c], 1
mov ecx, dword [esp + 0x4c]
push ecx
call dword [0x48c654]
add esp, 4
cmp dword [esp + 0x6c], 0
je 0x447f08
xor eax, eax
jmp 0x447f14
mov eax, dword [esp + 0xa8]
cdq
sub eax, edx
sar eax, 1
cmp esi, 2
jge 0x447f26
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0xa0]
mov edx, dword [esp + 0x140]
sub esi, ecx
mov dword [edx], esi
mov esi, dword [esp + 0xa4]
sub esi, ecx
mov dword [edx + 4], esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
cmp dword [esp + 0x88], 0
je 0x447f7a
cmp dword [esp + 0x8c], 0
je 0x447f7a
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x118
ret