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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xb4
cmp dword [esp + 0xc8], 0
mov esi, ecx
je 0x447002
cmp byte [esi + 0x17d], 0
mov dword [esp + 0x2c], edx
je 0x44744b
inc dword [esi + 0x138]
mov dword [esp + 0x14], esi
mov eax, dword [esi + 0x174]
cmp eax, 3
ja 0x447088
mov ecx, dword [esp + 0x2c]
mov edx, dword [esi + 0x170]
movzx ebx, byte [ecx]
movzx ecx, bl
cmp edx, ecx
jbe 0x44783f
mov edi, dword [esi + 0x16c]
cmp byte [edi + ecx], 0
je 0x44700e
cmp byte [esi + 0x17a], 0
jne 0x447038
jmp 0x447088
mov byte [esi + 0x17d], 0
jmp 0x44744b
mov byte [edi + ecx], 1
inc eax
mov ebp, dword [esp + 0x14]
mov dword [esi + 0x174], eax
movzx esi, byte [ecx + str.743210_._g]
add word [ebp + 0x178], si
mov esi, dword [esp + 0x14]
cmp byte [esi + 0x17a], 0
je 0x447088
mov bh, bl
add bh, 0xbf
cmp bh, 0x1a
jae 0x447049
or bl, 0x20
mov ecx, ebx
jmp 0x44705e
mov bh, bl
xor bl, 0x20
add bh, 0x9f
movzx esi, bl
cmp bh, 0x1a
cmovb ecx, esi
mov esi, dword [esp + 0x14]
movzx ecx, cl
cmp edx, ecx
jbe 0x44783f
cmp byte [edi + ecx], 0
jne 0x447088
mov byte [edi + ecx], 1
inc eax
mov dword [esi + 0x174], eax
movzx eax, byte [ecx + str.743210_._g]
add word [esi + 0x178], ax
cmp byte [esi + 0x137], 0
mov edi, esi
je 0x4470bb
mov ecx, dword [edi + 0x130]
mov esi, edi
cmp ecx, 3
ja 0x4470b2
mov eax, dword [esp + 0xc8]
cmp eax, 0xff
jbe 0x44721e
mov byte [esi + 0x137], 0
mov edi, esi
mov eax, dword [edi + 0xc]
mov esi, edi
lea ecx, [eax + 1]
test eax, eax
mov dword [edi + 0xc], ecx
je 0x4470f8
test dword [esi], 0x7fffffff
mov eax, dword [esp + 0xc8]
jne 0x447180
mov dword [esi], 0x80000000
cmp dword [esi + 0x13c], 0x80000000
jne 0x4471ae
jmp 0x44744b
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x447122
call dword [sym.imp.kernel32.dll_GetProcessHeap]
mov edi, dword [esp + 0xc8]
test eax, eax
je 0x44785d
mov dword [0x5a1188], eax
mov edi, dword [esp + 0xc8]
push edi
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x44785d
mov ebp, eax
push edi
push dword [esp + 0x30]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
test dword [esi], 0x7fffffff
je 0x447164
push dword [esi + 4]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esi], edi
mov dword [esi + 4], ebp
mov dword [esi + 8], edi
mov eax, edi
cmp dword [esi + 0x13c], 0x80000000
je 0x44744b
jmp 0x4471ae
push dword [esi + 4]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0xc8]
mov dword [esi], 0x80000000
cmp dword [esi + 0x13c], 0x80000000
je 0x44744b
cmp byte [esi + 0x165], 0
jne 0x44744b
mov edi, dword [esi + 0x144]
cmp edi, 0x80
jb 0x447419
mov byte [esi + 0x165], 1
mov byte [esi + 0x15c], 0
mov eax, esi
mov ebx, dword [sym.imp.kernel32.dll_HeapFree]
mov esi, dword [esi + 0x140]
mov dword [eax + 0x144], 0
add esi, 4
jmp 0x44720a
add esi, 0xc
dec edi
je 0x447433
cmp dword [esi - 4], 0
je 0x447200
push dword [esi]
push 0
push dword [0x5a1188]
call ebx
jmp 0x447200
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x2c]
xor ebx, ebx
movzx edx, byte [ecx]
add eax, ecx
mov dword [esp + 0xc], eax
mov eax, ecx
mov ebp, eax
movzx ecx, byte [edx + str.743210_._g]
mov dword [esp + 8], edx
movzx edx, byte [esi + 0x136]
mov dword [esp + 0x28], ecx
lea ecx, [esi + 0x110]
mov byte [esp + 0x27], dl
mov dword [esp + 0x18], ecx
xor ecx, ecx
test dl, dl
je 0x447456
cmp ecx, 0x101
mov eax, 0x100
cmovae eax, ecx
mov dword [esp + 0x20], eax
jmp 0x447292
mov eax, ecx
cmp ebp, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov ebx, eax
je 0x4475b9
cmp dword [esp + 0x20], ecx
je 0x447849
movzx eax, byte [ebp]
mov dword [esp + 0x10], ebx
movzx edi, al
mov ah, al
movzx edx, byte [esi + edi + 0x10]
mov dword [esp], edi
cmp dl, cl
cmovbe edx, ecx
add ah, 0xbf
cmp ah, 0x1a
mov byte [esi + edi + 0x10], dl
jae 0x4472d0
mov edx, eax
or dl, 0x20
jmp 0x4472e3
mov edx, eax
mov dh, al
add dl, 0x9f
xor dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, edi
lea ebx, [ecx + 1]
movzx edx, dl
inc ebp
mov dword [esp + 4], ebx
movzx ebx, byte [esi + edx + 0x10]
cmp bl, cl
cmova ecx, ebx
mov byte [esi + edx + 0x10], cl
mov ecx, dword [esp + 0x10]
test cl, 1
jne 0x447280
mov ecx, eax
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 1
mov dword [esp + 0xa0], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x1c], ebp
and al, 7
and cl, 0x78
shr cl, 3
neg cl
movsx edi, cl
mov ecx, eax
mov ebx, dword [esp + edi + 0xa8]
mov ebp, dword [esp + edi + 0xac]
mov esi, dword [esp + edi + 0xb0]
mov edi, dword [esp + edi + 0xa4]
mov edx, ebx
shld esi, ebp, cl
shl ebp, cl
not cl
shr edx, 1
shr edx, cl
mov ecx, eax
mov eax, dword [esp + 0x18]
or edx, ebp
mov ebp, dword [esp]
shld ebx, edi, cl
shl edi, cl
shr ebp, 3
and ebp, 0xfffffff0
and esi, dword [eax + ebp + 0xc]
and ebx, dword [eax + ebp + 4]
and edx, dword [eax + ebp + 8]
and edi, dword [eax + ebp]
mov ebp, dword [esp + 0x1c]
mov al, 1
or ebx, esi
mov esi, dword [esp + 0x14]
or edi, edx
or ebx, edi
jne 0x447282
mov edi, dword [esp]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x10]
movzx ecx, byte [edi + str.743210_._g]
movzx eax, al
cmp cl, dl
movzx edx, dl
cmovb edx, ecx
cmovb eax, edi
cmp ebp, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov dword [esp + 8], eax
mov dword [esp + 0x28], edx
jne 0x447263
jmp 0x4475bb
mov edx, dword [esp + 0x2c]
add esi, 0x13c
mov ecx, esi
push eax
call fcn.00443920
add esp, 0xb8
jmp 0x447451
mov eax, dword [esp + 0x14]
mov dword [eax + 0x150], 0
mov dword [eax + 0x154], 0xffffffff
add esp, 0xb4
pop esi
pop edi
pop ebx
pop ebp
ret
cmp ecx, 0x101
mov eax, 0x100
cmovae eax, ecx
mov dword [esp + 0x20], eax
jmp 0x447482
mov eax, ebx
cmp ebp, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov ebx, eax
je 0x4475b9
cmp dword [esp + 0x20], ecx
je 0x447849
lea eax, [ecx + 1]
mov dword [esp + 4], eax
movzx eax, byte [ebp]
inc ebp
movzx edi, al
movzx edx, byte [esi + edi + 0x10]
mov dword [esp], edi
cmp dl, cl
cmova ecx, edx
test bl, 1
mov byte [esi + edi + 0x10], cl
jne 0x447470
mov ecx, eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 1
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x1c], ebp
and al, 7
and cl, 0x78
shr cl, 3
neg cl
movsx edi, cl
mov ecx, eax
mov edx, dword [esp + edi + 0x88]
mov ebp, dword [esp + edi + 0x8c]
mov esi, dword [esp + edi + 0x90]
mov edi, dword [esp + edi + 0x84]
mov ebx, edx
shld esi, ebp, cl
shl ebp, cl
not cl
shr ebx, 1
shr ebx, cl
mov ecx, eax
mov eax, dword [esp + 0x18]
or ebx, ebp
mov ebp, dword [esp]
shld edx, edi, cl
shl edi, cl
shr ebp, 3
and ebp, 0xfffffff0
and esi, dword [eax + ebp + 0xc]
and edx, dword [eax + ebp + 4]
and ebx, dword [eax + ebp + 8]
and edi, dword [eax + ebp]
mov ebp, dword [esp + 0x1c]
mov al, 1
or edx, esi
mov esi, dword [esp + 0x14]
or edi, ebx
or edx, edi
jne 0x447472
mov edi, dword [esp]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x10]
movzx ecx, byte [edi + str.743210_._g]
movzx eax, al
cmp cl, dl
movzx edx, dl
cmovb edx, ecx
cmovb eax, edi
cmp ebp, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov dword [esp + 8], eax
mov dword [esp + 0x28], edx
jne 0x447456
jmp 0x4475bb
mov ebx, eax
test bl, 1
mov edi, esi
jne 0x4470bb
mov ebx, dword [esp + 8]
mov eax, ebx
shr al, 7
movzx edx, al
mov eax, dword [esp + 0x18]
shl edx, 4
mov dword [esp + 0x1c], edx
mov ecx, dword [eax + edx + 0xc]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + edx + 8]
mov dword [esp + 4], ecx
mov ecx, dword [eax + edx]
mov eax, dword [eax + edx + 4]
mov dword [esp], ecx
mov ecx, ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 1
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 8], ebx
mov eax, ebx
and cl, 0x78
and al, 7
shr cl, 3
neg cl
movsx esi, cl
mov ecx, eax
mov edi, dword [esp + esi + 0x68]
mov ebx, dword [esp + esi + 0x6c]
mov edx, dword [esp + esi + 0x70]
mov esi, dword [esp + esi + 0x64]
mov ebp, edi
shld edx, ebx, cl
shl ebx, cl
not cl
shr ebp, 1
mov dword [esp + 0x20], edx
shr ebp, cl
mov ecx, eax
mov eax, dword [esp + 0xc]
shld edi, esi, cl
or ebp, ebx
mov ebx, dword [esp + 4]
shl esi, cl
mov ecx, dword [esp]
and eax, edi
and ecx, esi
and ebx, ebp
or ebx, ecx
mov ecx, dword [esp + 0x10]
and ecx, edx
or eax, ecx
or eax, ebx
jne 0x4476ed
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 4]
or eax, dword [esp + 0x20]
add edx, dword [esp + 0x18]
or ebx, edi
mov edi, dword [esp]
or ecx, ebp
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x30]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x14]
or edi, esi
mov dword [edx + 4], ebx
mov dword [edx], edi
inc eax
mov dword [esp + 0x30], eax
mov dword [ecx + 0x130], eax
movzx eax, byte [esp + 8]
movzx eax, byte [eax + str.743210_._g]
add word [ecx + 0x134], ax
cmp byte [esp + 0x27], 0
mov edi, dword [esp + 0x14]
je 0x4470bb
mov edx, dword [esp + 8]
mov eax, edx
add al, 0xbf
cmp al, 0x1a
jae 0x44770d
or dl, 0x20
jmp 0x44771f
mov eax, edx
movzx ecx, dl
xor dl, 0x20
add al, 0x9f
movzx edx, dl
cmp al, 0x1a
cmovae edx, ecx
mov eax, edx
mov ecx, dword [esp + 0x18]
shr al, 7
movzx eax, al
shl eax, 4
mov esi, dword [ecx + eax + 0xc]
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], esi
mov esi, dword [ecx + eax + 8]
mov dword [esp + 4], esi
mov esi, dword [ecx + eax]
mov eax, dword [ecx + eax + 4]
mov ecx, edx
and cl, 0x78
shr cl, 3
neg cl
mov dword [esp + 0x10], esi
mov dword [esp], eax
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 1
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 8], edx
movsx esi, cl
mov eax, edx
mov edx, dword [esp + esi + 0x48]
mov edi, dword [esp + esi + 0x4c]
mov ebx, dword [esp + esi + 0x50]
and al, 7
mov esi, dword [esp + esi + 0x44]
mov ecx, eax
mov ebp, edx
shld ebx, edi, cl
shl edi, cl
not cl
shr ebp, 1
mov dword [esp + 0x20], ebx
and ebx, dword [esp + 0xc]
shr ebp, cl
mov ecx, eax
shld edx, esi, cl
or ebp, edi
shl esi, cl
mov eax, esi
mov ecx, ebp
mov edi, edx
and edi, dword [esp]
and eax, dword [esp + 0x10]
and ecx, dword [esp + 4]
or ecx, eax
or edi, ebx
or edi, ecx
mov edi, dword [esp + 0x14]
jne 0x4470bb
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
or edx, dword [esp]
or ebp, dword [esp + 4]
or esi, dword [esp + 0x10]
add eax, dword [esp + 0x1c]
or ecx, dword [esp + 0xc]
mov dword [eax], esi
mov dword [eax + 8], ebp
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x30]
inc eax
mov dword [edi + 0x130], eax
movzx eax, byte [esp + 8]
movzx eax, byte [eax + str.743210_._g]
add word [edi + 0x134], ax
jmp 0x4470bb
push 0x53ce64
call fcn.00532ca0
mov ecx, 0x59e39c
mov edx, 0x2b
push 0x53cda8
call fcn.00532d60
mov ecx, 1
mov edx, edi
call fcn.00531970
int3