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

Disassembly:
sub esp, 0x58
xor eax, eax
push ebx
mov ebx, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], eax
mov byte [esp + 0xb], al
or eax, 0xffffffff
push ebp
push esi
mov esi, edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x44], eax
mov eax, dword [ebx]
push edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x34], eax
call fcn.0044db00
test byte [esi + 0x2a], 0x20
mov edi, eax
movsx edx, word [esi + 0x22]
mov dword [esp + 0x4c], edx
jne 0x447055
and dword [esp + 0x1c], 0
mov dword [esp + 0x38], 1
jmp 0x447068
mov ecx, esi
call fcn.0043d90c
mov dword [esp + 0x1c], eax
movzx eax, word [eax + 0x32]
mov dword [esp + 0x38], eax
test edx, edx
jle 0x4471b4
mov eax, dword [esp + 0x78]
xor edx, edx
mov dword [esp + 0x30], edx
lea ebp, [eax + 1]
not eax
mov dword [esp + 0x3c], eax
lea ecx, [eax + ebp]
movsx eax, word [esi + 0x20]
cmp ecx, eax
je 0x447198
mov eax, dword [esi + 4]
movzx esi, byte [eax + edx + 0x14]
test esi, esi
je 0x447194
mov cl, byte [esp + 0x84]
push 2
cmp cl, 0xa
je 0x4470b6
movzx esi, cl
pop ecx
jmp 0x4470bd
cmp esi, 0xa
pop ecx
cmove esi, ecx
cmp esi, 5
jne 0x4470ca
cmp dword [eax + edx + 4], 0
cmove esi, ecx
mov eax, esi
sub eax, 1
je 0x44714d
sub eax, 1
je 0x44713c
sub eax, 1
je 0x44714d
mov ecx, edi
push 0
sub eax, 1
je 0x447127
push 0
push ebp
push 0x4d
pop edx
call fcn.00429abf
mov edx, dword [esp + 0x24]
mov esi, eax
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov ecx, ebx
mov edx, dword [edx + 4]
push ebp
mov edx, dword [edx + eax + 4]
call fcn.00439cd5
mov eax, dword [edi + 0x18]
mov edx, esi
pop ecx
mov ecx, dword [edi + 0x20]
dec ecx
mov dword [eax + 0x58], ecx
mov ecx, edi
call fcn.0042a11a
mov ecx, dword [edi + 0x20]
mov dword [eax + 8], ecx
jmp 0x447190
push dword [esp + 0x8c]
push ebp
push 0x4c
pop edx
call fcn.00429abf
add esp, 0xc
jmp 0x447190
mov eax, dword [ebx + 0x198]
mov ecx, ebx
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x15], 1
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
push dword [eax + edx]
push dword [ecx]
push str._s._s
push dword [esp + 0x40]
call fcn.0041535b
or ecx, 0xffffffff
push ecx
push eax
push ebp
push esi
push 0x513
push 0x15
pop edx
mov ecx, edi
call fcn.00429bde
add esp, 0x24
or eax, 0xffffffff
mov edx, eax
mov ecx, edi
call fcn.0042a11a
mov byte [eax + 3], 1
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
add edx, 0x18
inc ebp
mov dword [esp + 0x30], edx
add eax, ebp
cmp eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x3c]
jl 0x447083
mov ebp, dword [esi + 0x18]
test ebp, ebp
je 0x44728c
mov eax, dword [esp + 0x34]
test dword [eax + 0x18], 0x2000
jne 0x44728c
mov eax, dword [esp + 0x78]
inc eax
cmp byte [esp + 0x84], 0xa
mov dword [ebx + 0x5c], eax
movzx eax, byte [esp + 0x84]
push 2
pop esi
cmovne esi, eax
xor eax, eax
mov dword [esp + 0x3c], eax
cmp dword [ebp], eax
jle 0x44728c
mov dword [esp + 0x30], eax
mov ecx, edi
call fcn.00429cb7
mov edx, dword [ebp + 4]
mov ecx, ebx
push 0x10
mov dword [esp + 0x50], eax
push eax
mov eax, dword [esp + 0x38]
mov edx, dword [eax + edx]
call fcn.00439f19
pop ecx
pop ecx
cmp esi, 4
jne 0x447237
mov edx, dword [esp + 0x88]
mov ecx, edi
call fcn.00429b34
jmp 0x44726a
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + eax + 4]
test eax, eax
jne 0x44724c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
push 2
pop ecx
push 3
cmp esi, 5
mov edx, 0x113
push 0
cmove esi, ecx
mov ecx, ebx
push eax
push esi
call fcn.00440fb7
add esp, 0x10
mov edx, dword [esp + 0x4c]
mov ecx, edi
call fcn.00429cf4
mov eax, dword [esp + 0x3c]
add dword [esp + 0x30], 0x18
inc eax
mov dword [esp + 0x3c], eax
cmp eax, dword [ebp]
jl 0x447201
cmp byte [esp + 0x80], 0
je 0x447493
cmp dword [esp + 0x1c], 0
jne 0x447493
mov ecx, edi
call fcn.00429cb7
mov ebp, dword [esp + 0x18]
mov dl, byte [esp + 0x84]
mov dword [esp + 0x3c], eax
movzx esi, byte [ebp + 0x2b]
cmp dl, 0xa
je 0x4472c9
movzx esi, dl
jmp 0x4472d2
push 2
cmp esi, 0xa
pop ecx
cmove esi, ecx
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x447307
push ecx
push eax
push dword [esp + 0x80]
mov ecx, edi
push 0x4f
pop edx
call fcn.00429abf
add esp, 0xc
or eax, 0xffffffff
mov edx, eax
mov ecx, edi
call fcn.0042a11a
mov dl, byte [esp + 0x84]
mov byte [eax + 3], 0x90
cmp esi, 5
jne 0x447342
cmp dl, 5
je 0x447342
mov eax, dword [ebp + 8]
jmp 0x447326
mov cl, byte [eax + 0x36]
cmp cl, 4
je 0x44732c
cmp cl, 3
je 0x44732c
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x447316
jmp 0x447342
xor eax, eax
mov ecx, edi
push eax
push eax
push eax
push 0xe
pop edx
call fcn.00429abf
add esp, 0xc
mov dword [esp + 0x40], eax
push dword [esp + 0x78]
mov ecx, edi
push dword [esp + 0x40]
push dword [esp + 0x78]
push 0x49
pop edx
call fcn.00429abf
add esp, 0xc
test esi, esi
je 0x447441
cmp esi, 3
jbe 0x447446
cmp esi, 4
je 0x447431
cmp esi, 5
jne 0x447441
mov eax, dword [esp + 0x34]
xor esi, esi
test dword [eax + 0x18], 0x40000
je 0x4473a3
push esi
push esi
push 0x6d
mov edx, ebp
mov ecx, ebx
call fcn.00452ad2
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4473e8
push 0
push 0
mov edx, ebp
mov ecx, ebx
call fcn.004455bc
pop ecx
pop ecx
test eax, eax
jne 0x4473e8
cmp dword [ebp + 8], eax
je 0x447427
mov eax, dword [ebx + 0x198]
mov ecx, ebx
test eax, eax
mov edx, ebp
cmovne ecx, eax
or eax, 0xffffffff
push eax
push 0
push dword [esp + 0x7c]
mov byte [ecx + 0x14], 1
mov ecx, ebx
push dword [esp + 0x7c]
call fcn.0044274a
add esp, 0x10
jmp 0x447427
mov eax, dword [ebx + 0x198]
mov ecx, ebx
test eax, eax
mov edx, ebp
cmovne ecx, eax
or eax, 0xffffffff
push eax
push 1
push 5
push 0
push 1
push dword [esp + 0x8c]
mov byte [ecx + 0x14], 1
mov ecx, ebx
push dword [esp + 0x8c]
push dword [esp + 0x8c]
push esi
call fcn.004424f2
add esp, 0x24
mov dword [esp + 0x44], 1
jmp 0x447451
mov edx, dword [esp + 0x88]
mov ecx, edi
call fcn.00429b34
jmp 0x447451
push 2
pop eax
mov esi, eax
push ebp
mov edx, esi
mov ecx, ebx
call fcn.004410f5
pop ecx
mov edx, dword [esp + 0x3c]
mov ecx, edi
call fcn.00429cf4
mov esi, dword [esp + 0x40]
test esi, esi
je 0x447497
xor eax, eax
push eax
push eax
push eax
push 0xe
pop edx
call fcn.00429abf
mov ecx, dword [edi + 0x18]
add esp, 0xc
mov edx, dword [edi + 0x20]
dec edx
mov dword [esp + 0x50], eax
mov dword [ecx + 0x58], edx
mov edx, esi
mov ecx, edi
call fcn.0042a11a
mov ecx, dword [edi + 0x20]
mov dword [eax + 8], ecx
jmp 0x447497
mov ebp, dword [esp + 0x18]
mov esi, dword [ebp + 8]
mov dword [esp + 0x4c], esi
test esi, esi
je 0x447934
mov eax, dword [esp + 0x74]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x20]
cmp dword [eax], 0
je 0x447919
mov eax, dword [esp + 0x78]
inc eax
cmp byte [esp + 0x17], 0
jne 0x4474db
push eax
mov edx, ebp
mov ecx, edi
call fcn.00445d09
pop ecx
mov byte [esp + 0x17], 1
mov ecx, edi
call fcn.00429cb7
xor ecx, ecx
mov dword [esp + 0x2c], eax
cmp dword [esi + 0x24], ecx
je 0x447521
mov eax, dword [esp + 0x6c]
push ecx
push dword [eax]
push ecx
push 0x1a
pop edx
mov ecx, edi
call fcn.00429abf
mov eax, dword [esp + 0x84]
add esp, 8
inc eax
mov ecx, ebx
mov dword [ebx + 0x5c], eax
mov edx, dword [esi + 0x24]
push dword [esp + 0x30]
call fcn.0043a3f6
and dword [ebx + 0x5c], 0
pop ecx
pop ecx
movzx edx, word [esi + 0x34]
mov ecx, ebx
call fcn.0043a9e7
movzx ecx, word [esi + 0x34]
and dword [esp + 0x3c], 0
mov edx, ecx
and dword [esp + 0x30], 0
mov dword [esp + 0x24], eax
cmp word [esp + 0x3c], cx
jae 0x4475ec
and dword [esp + 0x28], 0
mov ecx, eax
mov dword [esp + 0x3c], ecx
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x30]
movsx edx, word [eax + edx*2]
cmp edx, 0xfffffffe
jne 0x44758a
mov eax, dword [esp + 0x78]
inc eax
mov dword [ebx + 0x5c], eax
mov eax, dword [esi + 0x28]
push ecx
mov ecx, ebx
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x2c]
mov edx, dword [edx + eax]
call fcn.00439cd5
and dword [ebx + 0x5c], 0
pop ecx
jmp 0x4475cc
or eax, 0xffffffff
cmp edx, eax
je 0x4475a2
movsx eax, word [ebp + 0x20]
cmp edx, eax
je 0x4475a2
mov eax, dword [esp + 0x78]
inc eax
add eax, edx
jmp 0x4475bb
cmp dword [esp + 0x48], ecx
je 0x4475d0
cmp dword [esi + 0x24], 0
mov edx, ecx
mov eax, dword [esp + 0x78]
cmovne edx, dword [esp + 0x54]
mov dword [esp + 0x48], edx
push 0
push ecx
push eax
push 0x20
pop edx
mov ecx, edi
call fcn.00429abf
add esp, 0xc
mov ecx, dword [esp + 0x3c]
inc dword [esp + 0x30]
add dword [esp + 0x28], 0x18
inc ecx
movzx edx, word [esi + 0x34]
mov dword [esp + 0x3c], ecx
cmp dword [esp + 0x30], edx
jl 0x447556
mov eax, dword [esp + 0x6c]
mov ecx, edi
push dword [eax]
movzx eax, dx
push eax
push dword [esp + 0x2c]
push 0x31
pop edx
call fcn.00429abf
movzx eax, word [esi + 0x34]
add esp, 0xc
mov edx, dword [esp + 0x24]
mov ecx, ebx
push eax
call fcn.00438d85
cmp dword [esp + 0x80], 0
pop ecx
je 0x447642
cmp dword [esp + 0x1c], esi
jne 0x447642
cmp byte [esp + 0x80], 0
jne 0x447642
mov edx, dword [esp + 0x2c]
mov ecx, edi
call fcn.00429cf4
jmp 0x447911
movzx eax, byte [esi + 0x36]
test eax, eax
jne 0x44765d
movzx eax, word [esi + 0x34]
mov ecx, ebx
mov edx, dword [esp + 0x24]
push eax
call fcn.0043aa12
pop ecx
jmp 0x447632
mov cl, byte [esp + 0x84]
cmp cl, 0xa
je 0x44766e
movzx eax, cl
jmp 0x447677
push 2
cmp eax, 0xa
pop ecx
cmove eax, ecx
mov dword [esp + 0x28], eax
mov ecx, edi
movzx eax, word [esi + 0x32]
push eax
push dword [esp + 0x28]
push dword [esp + 0x34]
push dword [esp + 0x2c]
push 0x44
pop edx
call fcn.00429c89
mov edx, dword [esp + 0x2c]
add esp, 0x10
cmp esi, edx
jne 0x4476a7
mov ecx, dword [esp + 0x24]
jmp 0x4476b8
mov edx, dword [esp + 0x38]
mov ecx, ebx
call fcn.0043a9e7
mov edx, dword [esp + 0x1c]
mov ecx, eax
cmp dword [esp + 0x7c], 0
mov dword [esp + 0x30], ecx
jne 0x4476d0
mov eax, dword [esp + 0x28]
cmp eax, 5
jne 0x447842
test byte [ebp + 0x2a], 0x20
jne 0x447724
push 0
push ecx
push dword [esp + 0x28]
mov ecx, edi
push 0x71
pop edx
call fcn.00429abf
mov eax, dword [esp + 0x88]
add esp, 0xc
test eax, eax
je 0x44783e
push eax
push dword [esp + 0x30]
mov ecx, edi
push dword [esp + 0x38]
push 0x4f
pop edx
call fcn.00429abf
add esp, 0xc
or eax, 0xffffffff
mov edx, eax
mov ecx, edi
call fcn.0042a11a
mov byte [eax + 3], 0x90
jmp 0x44783e
cmp esi, edx
je 0x447777
and dword [esp + 0x3c], 0
xor eax, eax
cmp ax, word [edx + 0x32]
jae 0x447777
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0x30]
lea eax, [ebx + ebp]
mov ecx, esi
push eax
mov eax, dword [edx + 4]
mov dx, word [eax + ebp*2]
call fcn.0043d924
cwde
mov ecx, edi
push eax
push dword [esp + 0x28]
push 0x2f
pop edx
call fcn.00429abf
mov edx, dword [esp + 0x28]
add esp, 0xc
inc ebp
movzx eax, word [edx + 0x32]
cmp ebp, eax
jl 0x44773d
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x18]
cmp dword [esp + 0x7c], 0
je 0x44783e
movzx ecx, word [edx + 0x32]
mov eax, dword [edi + 0x20]
mov edx, dword [esp + 0x30]
add eax, ecx
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 0x38]
and al, 3
mov dword [esp + 0x3c], 0x4e
cmp al, 2
cmove edx, dword [esp + 0x24]
and dword [esp + 0x60], 0
mov dword [esp + 0x64], edx
test ecx, ecx
je 0x44783e
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x1c]
mov ecx, ebx
mov edx, dword [eax + 0x20]
mov edx, dword [edx + esi*4]
call fcn.0043e303
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 4]
movsx edx, word [ecx + esi*2]
mov ecx, dword [esp + 0x1c]
movzx ecx, word [ecx + 0x32]
dec ecx
cmp esi, ecx
jne 0x4477f5
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x3c], 0x4f
push 0xfffffffffffffffc
push eax
mov eax, dword [esp + 0x6c]
mov ecx, edi
add eax, esi
push eax
mov eax, dword [esp + 0x88]
inc eax
add eax, edx
mov edx, dword [esp + 0x48]
push ebp
push eax
call fcn.00429bde
add esp, 0x14
or eax, 0xffffffff
mov edx, eax
mov ecx, edi
call fcn.0042a11a
inc esi
mov byte [eax + 3], 0x90
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + 0x32]
cmp esi, eax
jl 0x4477c0
mov esi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x44786d
cmp eax, 3
jbe 0x447860
cmp eax, 4
jne 0x44786d
mov edx, dword [esp + 0x88]
mov ecx, edi
call fcn.00429b34
jmp 0x4478dd
push esi
mov edx, eax
mov ecx, ebx
call fcn.00441011
pop ecx
jmp 0x4478dd
mov eax, dword [ebx + 0x198]
xor edx, edx
test eax, eax
mov ecx, ebx
cmovne ecx, eax
mov eax, dword [esp + 0x34]
mov byte [ecx + 0x14], 1
test dword [eax + 0x18], 0x40000
je 0x44789f
push edx
push edx
push 0x6d
mov edx, ebp
mov ecx, ebx
call fcn.00452ad2
add esp, 0xc
mov edx, eax
or eax, 0xffffffff
cmp esi, dword [esp + 0x1c]
push eax
sete cl
movzx ecx, cl
push ecx
push 5
push 0
push dword [esp + 0x48]
mov ecx, ebx
push dword [esp + 0x44]
push dword [esp + 0x8c]
push dword [esp + 0x8c]
push edx
mov edx, ebp
call fcn.004424f2
add esp, 0x24
mov dword [esp + 0x44], 1
mov edx, dword [esp + 0x2c]
mov ecx, edi
call fcn.00429cf4
movzx eax, word [esi + 0x34]
mov ecx, ebx
mov edx, dword [esp + 0x24]
push eax
call fcn.0043aa12
mov eax, dword [esp + 0x34]
pop ecx
cmp eax, dword [esp + 0x24]
je 0x447911
push dword [esp + 0x38]
mov edx, eax
mov ecx, ebx
call fcn.0043aa12
pop ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x6c]
mov esi, dword [esi + 0x14]
inc ecx
add eax, 4
mov dword [esp + 0x4c], esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x6c], eax
test esi, esi
jne 0x4474b6
mov eax, dword [esp + 0x40]
test eax, eax
je 0x447961
lea edx, [eax + 1]
mov ecx, edi
call fcn.00429b34
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x50]
dec ecx
mov dword [eax + 0x58], ecx
mov ecx, edi
call fcn.0042a11a
mov ecx, dword [edi + 0x20]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x44]
pop edi
pop esi
pop ebp
mov dword [eax], ecx
pop ebx
add esp, 0x58
ret