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

Disassembly:
sub esp, 0x18c
mov eax, dword [esp + 0x198]
test eax, eax
mov dword [esp + 0x50], ecx
jne 0x446f51
lea eax, [esp + 0x4c]
and dword [eax], 0
test ecx, ecx
push ebx
push ebp
push esi
mov ebx, ecx
mov dword [esp + 0x3c], eax
push edi
mov dword [esp + 0x14], ebx
je 0x4471a8
mov esi, dword [esp + 0x60]
cmp dword [0x466198], 0
mov ebp, 0x4585d8
je 0x446f88
push 0
mov ecx, 0x466180
call 0x487674
call dword [fcn.0045826c]
mov edi, eax
sub eax, dword [0x466154]
cmp eax, dword [0x4651e4]
jbe 0x446fcf
xor eax, eax
push eax
push eax
push eax
push eax
lea eax, [esp + 0x8c]
push eax
call dword [0x4584c8]
test eax, eax
je 0x446fc1
push 1
push 0xffffffffffffffff
call fcn.004501c4
pop ecx
pop ecx
call dword [fcn.0045826c]
mov edi, eax
mov dword [0x466154], edi
cmp byte [0x4651f0], 0
jne 0x447024
cmp byte [0x4651f2], 0
jne 0x447024
mov eax, dword [0x466148]
cmp eax, 0xffffffff
jle 0x447024
cmp dword [0x465160], eax
jle 0x44701e
cmp byte [0x465351], 0
mov byte [0x4651f0], 1
je 0x447024
push 0xa
push dword [0x465208]
call dword [fcn.0045853c]
test eax, eax
je 0x447024
mov byte [0x465351], 0
jmp 0x447024
inc dword [0x465160]
mov ecx, dword [0x46513c]
cmp ecx, 0xffffffff
jl 0x447051
mov eax, dword [0x465138]
jg 0x44703b
cmp eax, 0xffffffff
jbe 0x447051
mov edx, dword [0x466144]
cmp edx, ecx
jg 0x447065
jl 0x447051
mov ecx, dword [0x466140]
cmp ecx, eax
jae 0x447065
mov eax, dword [0x46515c]
cmp eax, 0xffffffff
jle 0x447079
sub edi, dword [0x466150]
cmp edi, eax
jb 0x447079
push 1
push 0xa
jmp 0x447072
push 1
push 0x8000012f
call fcn.004501c4
pop ecx
pop ecx
cmp byte [0x4651fa], 0
jne 0x44706b
mov eax, dword [0x468688]
mov dword [0x465ec4], ebx
mov dword [eax*4 + 0x468048], ebx
call dword [fcn.0045826c]
mov ecx, dword [0x468688]
mov dword [ecx*4 + 0x467960], eax
inc ecx
cmp ecx, 0x190
mov dword [0x468688], ecx
jl 0x4470bd
and dword [0x468688], 0
xor edx, edx
cmp byte [ebx], 1
je 0x447181
push edx
push 0xffffffffffffffff
mov ecx, ebx
call fcn.00446c52
xor edi, edi
mov esi, eax
inc edi
cmp esi, edi
jne 0x4472eb
xor edx, edx
mov al, byte [ebx]
cmp al, 0xa
jb 0x447236
cmp al, 0x21
ja 0x447236
add dword [0x466140], edi
mov ecx, ebx
adc dword [0x466144], 0
call fcn.0044a582
test eax, eax
je 0x44a1c9
push 3
pop ebp
cmp eax, ebp
jne 0x4471b8
mov ecx, dword [ebx + 0x14]
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x1a8]
push ebp
call fcn.00446f38
mov ecx, dword [esp + 0x18]
cmp ecx, ebx
mov esi, eax
je 0x4471a0
cmp dword [esp + 0x1a0], ebp
je 0x44a109
test esi, esi
je 0x4472eb
cmp esi, 7
je 0x4472eb
cmp esi, 8
je 0x4472eb
cmp esi, 5
je 0x4472eb
cmp esi, 6
je 0x4472eb
test ecx, ecx
je 0x447189
mov eax, dword [ecx + 0x1c]
cmp eax, dword [ebx + 0x1c]
jmp 0x44a0f1
xor edi, edi
inc edi
jmp 0x4470e1
mov ebx, dword [ebx + 0x18]
test ebx, ebx
mov dword [esp + 0x14], ebx
je 0x4471d1
cmp byte [ebx], 9
jne 0x4471a0
mov ebx, dword [ebx + 0x18]
mov dword [esp + 0x14], ebx
test ebx, ebx
jne 0x446f6e
xor eax, eax
inc eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18c
ret 0xc
mov ebx, dword [ebx + 0x18]
test ebx, ebx
mov dword [esp + 0x14], ebx
je 0x4471d1
cmp byte [ebx], 9
je 0x4471d5
cmp dword [esp + 0x1a0], ebp
jne 0x4471a0
mov eax, edi
jmp 0x4471ab
mov ecx, dword [ebx + 0x14]
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x1a8]
push ebp
call fcn.00446f38
cmp dword [esp + 0x1a0], ebp
mov esi, eax
je 0x44a101
test esi, esi
je 0x4472eb
cmp esi, 7
je 0x4472eb
cmp esi, 8
je 0x4472eb
cmp esi, 5
je 0x4472eb
cmp esi, 6
je 0x4472eb
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x447199
jmp 0x447176
movzx eax, al
cmp eax, 0x69
jg 0x447683
je 0x44a1a5
sub eax, 8
je 0x447270
sub eax, 0x57
je 0x4472f2
dec eax
je 0x447295
sub eax, 6
je 0x44a147
dec eax
je 0x44a114
dec eax
jne 0x4476ac
mov edi, dword [ebx + 0xc]
xor ebp, ebp
cmp edi, 4
jne 0x447349
push ebp
push dword [0x467fa0]
call fcn.0045c346
pop ecx
pop ecx
mov dword [esp + 0x50], eax
jmp 0x4473ec
add dword [0x466140], edi
adc dword [0x466144], edx
mov eax, dword [ebx + 0x18]
cmp eax, edx
mov dword [esp + 0x34], eax
jne 0x4472c0
push edi
mov ecx, ebx
call fcn.00469b4c
test eax, eax
mov dword [esp + 0x34], eax
je 0x44a1c9
mov ecx, eax
call fcn.0044a55f
mov esi, eax
test esi, esi
je 0x4472eb
cmp esi, 8
je 0x4472eb
cmp dword [esp + 0x1a0], 3
jne 0x44a078
cmp esi, 7
mov eax, edi
je 0x4471ab
mov eax, esi
jmp 0x4471ab
add dword [0x466140], edi
adc dword [0x466144], edx
mov eax, dword [ebx + 0x18]
cmp eax, edx
mov dword [esp + 0x34], eax
jne 0x44731d
push edi
mov ecx, ebx
call fcn.00469b4c
test eax, eax
mov dword [esp + 0x34], eax
je 0x44a1c9
cmp dword [esp + 0x1a0], 3
mov dword [0x4651d0], eax
je 0x44733b
mov ecx, dword [eax + 4]
mov edx, dword [ebx + 0x1c]
cmp edx, dword [ecx + 0x1c]
je 0x44a0f3
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x40]
mov dword [ecx], eax
jmp 0x4471d1
xor ecx, ecx
inc ecx
cmp edi, ecx
ja 0x4473b3
movzx eax, byte [ebx + 1]
sub eax, ebp
je 0x4473b0
dec eax
je 0x447395
push 0x45b05c
push dword [0x467fa0]
call 0x486411
test eax, eax
pop ecx
pop ecx
jne 0x447375
push 5
jmp 0x4473ad
push ebp
push dword [0x467fa0]
call fcn.0045c346
pop ecx
pop ecx
xor ecx, ecx
cmp eax, ebp
setne cl
mov dword [esp + 0x50], eax
add ecx, 3
mov edi, ecx
jmp 0x4473b3
push ebp
push ecx
push ecx
push ecx
push dword [0x467fa0]
call fcn.0044671d
add esp, 0x14
test eax, eax
je 0x447375
push 2
pop edi
jmp 0x44742e
push 2
pop edi
cmp edi, 3
jne 0x4473e7
cmp byte [ebx + 1], 1
ja 0x4473c8
mov dword [esp + 0x44], 1
jmp 0x4473e0
push dword [0x467fa4]
call fcn.00458ea9
cmp eax, ebp
pop ecx
mov dword [esp + 0x44], eax
je 0x44a16f
mov eax, dword [0x467fa8]
jmp 0x447419
cmp edi, 4
jne 0x44742e
cmp byte [ebx + 1], 2
ja 0x4473fc
mov dword [esp + 0x44], 1
jmp 0x447414
push dword [0x467fa8]
call fcn.00458ea9
cmp eax, ebp
pop ecx
mov dword [esp + 0x44], eax
je 0x44a17d
mov eax, dword [0x467fac]
cmp byte [eax], 0x31
jne 0x447429
cmp byte [eax + 1], 0
mov byte [esp + 0x48], 1
je 0x44742e
mov byte [esp + 0x48], 0
mov eax, dword [0x465144]
mov ebp, dword [0x465140]
mov dword [esp + 0x78], eax
mov eax, dword [0x465148]
mov dword [esp + 0x28], eax
mov eax, dword [0x46514c]
mov dword [esp + 0x24], eax
mov eax, dword [0x465150]
mov dword [esp + 0x38], eax
mov eax, dword [0x465154]
mov dword [esp + 0x1c], eax
xor edx, edx
mov eax, edi
dec eax
dec eax
mov byte [esp + 0x12], 0
mov dword [esp + 0x18], edx
mov dword [0x465140], 1
mov dword [0x465144], edx
je 0x4475b3
dec eax
je 0x44758b
dec eax
je 0x44752d
dec eax
je 0x4474db
dec eax
jne 0x4475fe
push 0x45b058
push dword [0x467fa8]
call 0x486411
pop ecx
pop ecx
test eax, eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x16]
push eax
push dword [esp + 0x1ac]
mov ecx, ebx
je 0x4474d1
call fcn.0044d6c0
jmp 0x4475fc
call fcn.0044d8b2
jmp 0x4475fc
mov eax, dword [0x467fa4]
cmp byte [eax], 0
je 0x447586
push 0x45b054
push eax
call 0x482b32
mov edi, eax
test edi, edi
pop ecx
pop ecx
je 0x447586
push dword [0x467fa8]
lea eax, [esp + 0x1c]
push edi
push eax
lea eax, [esp + 0x1e]
push eax
push dword [esp + 0x1b4]
mov ecx, ebx
call fcn.0045bd40
push edi
mov esi, eax
call 0x4829ba
pop ecx
jmp 0x4475fe
lea eax, [esp + 0x33]
push eax
push dword [0x467fa0]
call fcn.0045c346
mov edi, eax
test edi, edi
pop ecx
pop ecx
je 0x447586
push dword [0x467fa4]
lea eax, [esp + 0x1c]
push edi
push dword [esp + 0x58]
mov ecx, ebx
push dword [esp + 0x54]
push dword [esp + 0x54]
push eax
lea eax, [esp + 0x2a]
push eax
push dword [esp + 0x1c0]
call fcn.0045bfe1
cmp byte [esp + 0x33], 0
mov esi, eax
je 0x4475fe
push edi
call dword [0x458044]
jmp 0x4475fe
xor esi, esi
inc esi
jmp 0x4475fe
push dword [0x467fa0]
lea eax, [esp + 0x1c]
push dword [esp + 0x4c]
mov ecx, ebx
push dword [esp + 0x4c]
push eax
lea eax, [esp + 0x22]
push eax
push dword [esp + 0x1b8]
call fcn.0044daa9
jmp 0x4475fc
cmp byte [ebx + 1], 0
jbe 0x4475d7
push dword [0x467fa0]
call fcn.0044667c
cmp byte [ebx], 8
pop ecx
jne 0x4475d0
mov ecx, eax
or ecx, edx
je 0x4475d9
mov byte [esp + 0x4c], 0
jmp 0x4475de
xor eax, eax
mov byte [esp + 0x4c], 1
push dword [esp + 0x4c]
mov ecx, ebx
push edx
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x22]
push eax
push dword [esp + 0x1b8]
call fcn.00445e57
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x78]
mov dword [0x465144], eax
mov eax, dword [esp + 0x28]
mov dword [0x465148], eax
mov eax, dword [esp + 0x24]
mov dword [0x46514c], eax
mov eax, dword [esp + 0x38]
mov dword [0x465150], eax
mov eax, dword [esp + 0x1c]
mov dword [0x465140], ebp
mov dword [0x465154], eax
je 0x4472eb
cmp esi, 7
je 0x4472eb
cmp esi, 8
je 0x4472eb
cmp byte [esp + 0x12], 0
jne 0x4471a0
cmp dword [esp + 0x1a0], 3
je 0x44a18b
mov eax, dword [esp + 0x18]
test eax, eax
je 0x447199
mov ecx, dword [eax + 0x1c]
cmp ecx, dword [ebx + 0x1c]
jne 0x44a19a
mov ebx, eax
jmp 0x44719c
sub eax, 0x6a
je 0x44a200
dec eax
je 0x44a080
dec eax
je 0x44a1de
sub eax, 0x21
je 0x449fd2
sub eax, 0x48
je 0x44a1a9
add dword [0x466140], edi
mov esi, dword [0x467ff0]
adc dword [0x466144], edx
mov al, byte [ebx]
movzx ecx, al
dec ecx
cmp ecx, 0xd5
ja 0x449fb5
jmp dword [ecx*4 + 0x405607]
xor esi, esi
test esi, esi
je 0x4472eb
cmp dword [esp + 0x1a0], 3
je 0x4472eb
jmp 0x44a078
mov eax, dword [esp + 0x60]
xor esi, esi
inc esi
add dword [0x466140], esi
push 0
pop ebp
adc dword [0x466144], ebp
mov edi, dword [eax + 0xc]
cmp edi, ebp
jne 0x44a006
push ebp
push dword [0x467fa0]
mov ecx, 0x465c88
call 0x4927c3
mov edi, eax
cmp edi, ebp
je 0x44a06a
mov eax, dword [0x467fa4]
cmp byte [eax], 0
je 0x44a025
push 0x459f50
push eax
call 0x486411
test eax, eax
pop ecx
pop ecx
jne 0x44a025
mov al, 1
jmp 0x44a027
xor al, al
lea ecx, [esp + 0x34]
push ecx
push ebp
push eax
mov ecx, edi
call 0x492947
cmp dword [esp + 0x34], ebp
je 0x44a06a
push dword [esp + 0x34]
mov ecx, ebx
call fcn.0046c02c
test eax, eax
je 0x44a1c9
mov ecx, dword [esp + 0x34]
call fcn.0044a55f
mov esi, eax
cmp esi, ebp
je 0x4472eb
cmp esi, 8
je 0x4472eb
cmp dword [esp + 0x1a0], 3
je 0x44a1d0
mov ebx, dword [ebx + 0x14]
jmp 0x44719c
cmp dword [ebx + 0xc], edx
jne 0x447199
mov ecx, dword [ebx + 0x14]
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x1a8]
push 2
call fcn.00446f38
mov ecx, dword [esp + 0x18]
cmp ecx, ebx
mov esi, eax
je 0x4471a0
cmp dword [esp + 0x1a0], 3
je 0x44a109
test esi, esi
je 0x4472eb
cmp esi, 7
je 0x4472eb
cmp esi, 8
je 0x4472eb
cmp esi, 5
je 0x4472eb
cmp esi, 6
je 0x4472eb
test ecx, ecx
je 0x447199
mov eax, dword [ebx + 0x1c]
cmp eax, dword [ecx + 0x1c]
jne 0x44a107
mov ebx, ecx
jmp 0x44719c
mov ecx, dword [esp + 0x18]
jmp 0x44a109
mov esi, edi
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x4472eb
mov eax, dword [0x4641d0]
cmp word [eax], dx
jne 0x44a13f
cmp dword [0x466edc], edx
jne 0x44a13f
cmp dword [0x465338], edx
jne 0x44a13f
cmp dword [0x46533c], edx
jne 0x44a13f
cmp byte [0x46534c], 0
je 0x44a1a9
push 8
pop eax
jmp 0x4471ab
mov eax, dword [esp + 0x1a4]
cmp eax, edx
je 0x44a15a
mov ecx, dword [0x467fa0]
mov dword [eax], ecx
mov eax, dword [esp + 0x1a0]
dec eax
neg eax
sbb eax, eax
and eax, 6
inc eax
jmp 0x4471ab
push dword [0x467fa4]
push ebp
push 0x45b020
jmp 0x44a1f4
push dword [0x467fa8]
push ebp
push 0x45afec
jmp 0x44a1f4
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
mov dword [eax], ecx
jmp 0x4471a8
mov ecx, dword [esp + 0x40]
mov dword [ecx], eax
jmp 0x4471a8
push 5
jmp 0x44a141
push dword [0x467fa0]
call fcn.004465fa
pop ecx
push eax
push 0
push 9
mov ecx, 0x465c88
call fcn.00459ec3
jmp 0x4471ab
xor eax, eax
jmp 0x4471ab
cmp esi, 7
jne 0x4472eb
jmp 0x4471a8
cmp dword [esp + 0x1a0], 2
je 0x4471d1
push ebp
push 0
push 0x45af98
mov ecx, ebx
call 0x48f20c
jmp 0x4471ab
push 6
jmp 0x44a141