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

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
sub esp, 0x190
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
lea eax, [ebp - 0x110]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x38], 0
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
add eax, edx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x44], 0
mov eax, dword [ebp - 0x3c]
sub eax, 1
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0x1c]
and eax, 0xe20f5a6f
test eax, eax
je 0x44381c
mov eax, 0xfffffffd
jmp 0x444651
cmp dword [ebp - 0x50], 0
je 0x443834
cmp dword [ebp + 0x10], 0
je 0x443834
cmp dword [ebp + 0x20], 0
jne 0x44383e
cmp dword [ebp + 0x24], 0
jle 0x44383e
mov eax, 0xfffffffe
jmp 0x444651
cmp dword [ebp + 0x24], 0
jns 0x44384e
mov eax, 0xfffffff1
jmp 0x444651
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0x18]
movzx edx, ax
mov eax, dword [ebp - 0x50]
add edx, eax
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x28], edx
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0x1c]
movzx edx, ax
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x20], edx
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0x1a]
movzx edx, ax
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x24], edx
mov dword [ebp - 0x4c], 0
mov eax, dword [ebp - 0x5c]
mov dword [eax + 4], 0x989680
mov eax, dword [ebp - 0x5c]
mov dword [eax + 8], 0x989680
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x94], 0
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x34], eax
cmp dword [ebp + 0xc], 0
je 0x443925
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax]
mov eax, ebx
and eax, 1
test eax, eax
je 0x4438d1
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0x4c], eax
mov eax, ebx
and eax, 2
test eax, eax
je 0x4438e6
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x5c]
mov dword [eax + 4], edx
mov eax, ebx
and eax, 0x10
test eax, eax
je 0x4438fb
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x14]
mov eax, dword [ebp - 0x5c]
mov dword [eax + 8], edx
mov eax, ebx
and eax, 4
test eax, eax
je 0x443913
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x94], edx
mov eax, ebx
and eax, 8
test eax, eax
je 0x443925
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x443932
mov dword [ebp - 0x34], 0x57dd40
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
cmp eax, 0x50435245
je 0x443986
lea eax, [ebp - 0x13c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp + 8], eax
lea eax, [ebp - 0x164]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x50]
mov dword [esp], eax
call fcn.0044491f
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0
jne 0x443977
mov eax, 0xfffffffc
jmp 0x444651
cmp dword [ebp - 0x4c], 0
je 0x443986
lea eax, [ebp - 0x13c]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x50]
mov edx, dword [eax + 8]
mov eax, dword [ebp + 0x1c]
or eax, edx
and eax, 0x10
test eax, eax
setne al
movzx eax, al
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0xc]
movzx eax, ax
and eax, 8
test eax, eax
setne al
movzx eax, al
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 8]
and eax, 0x40000
test eax, eax
setne al
movzx eax, al
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0x18]
movzx ecx, ax
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0x1c]
movzx edx, ax
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0x1a]
movzx eax, ax
imul eax, edx
lea edx, [ecx + eax]
mov eax, dword [ebp - 0x60]
add edx, eax
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x60], edx
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp + 0x10]
mov dword [eax + 0x64], edx
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp + 0x18]
mov dword [eax + 0x84], edx
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x64]
mov eax, dword [ebp + 0x14]
add edx, eax
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x68], edx
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x68]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 8]
and eax, 0x20
test eax, eax
setne al
movzx edx, al
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x4c], edx
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 8]
and eax, 0x800
test eax, eax
setne al
movzx edx, al
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x44], edx
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x44]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 8]
and eax, 0x2000000
test eax, eax
setne al
movzx edx, al
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x48], edx
mov eax, dword [ebp + 0x1c]
and eax, 0x80
test eax, eax
setne al
movzx edx, al
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x3c], edx
mov eax, dword [ebp + 0x1c]
and eax, 0x100
test eax, eax
setne al
movzx edx, al
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x40], edx
mov eax, dword [ebp + 0x1c]
and eax, 0x400
test eax, eax
setne al
movzx edx, al
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x50], edx
mov eax, dword [ebp + 0x1c]
and eax, 0x10000000
test eax, eax
setne al
movzx edx, al
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x54], edx
mov eax, dword [ebp + 0x1c]
and eax, 0x8000000
test eax, eax
jne 0x443aee
mov eax, dword [ebp + 0x1c]
sar eax, 0xf
and eax, 1
mov edx, eax
jmp 0x443af3
mov edx, 2
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x78], edx
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x58], 0
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x90], 0
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x30], edx
mov eax, dword [ebp - 0x34]
lea edx, [eax + 0x340]
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x34], edx
mov eax, dword [ebp + 0x1c]
and eax, 0x1800000
cmp eax, 0x1000000
je 0x443b8d
cmp eax, 0x1000000
jg 0x443b99
test eax, eax
je 0x443b4b
cmp eax, 0x800000
je 0x443b81
jmp 0x443b99
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 8]
and eax, 0x1800000
test eax, eax
je 0x443b75
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 8]
and eax, 0x800000
test eax, eax
setne al
movzx edx, al
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x5c], edx
jmp 0x443ba3
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x5c], 0
jmp 0x443ba3
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x5c], 1
jmp 0x443ba3
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x5c], 0
jmp 0x443ba3
mov eax, 0xffffffe9
jmp 0x444651
mov eax, dword [ebp + 0x1c]
and eax, 0x700000
test eax, eax
jne 0x443bbc
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 8]
and eax, 0x700000
jmp 0x443bc4
mov eax, dword [ebp + 0x1c]
and eax, 0x700000
cmp eax, 0x500000
je 0x443c36
cmp eax, 0x500000
ja 0x443c3f
cmp eax, 0x400000
je 0x443c2d
cmp eax, 0x400000
ja 0x443c3f
cmp eax, 0x300000
je 0x443c24
cmp eax, 0x300000
ja 0x443c3f
cmp eax, 0x200000
je 0x443c1b
cmp eax, 0x200000
ja 0x443c3f
test eax, eax
je 0x443c09
cmp eax, 0x100000
je 0x443c12
jmp 0x443c3f
mov dword [ebp - 0x24], 0xa
jmp 0x443c49
mov dword [ebp - 0x24], 0xd
jmp 0x443c49
mov dword [ebp - 0x24], 0xa
jmp 0x443c49
mov dword [ebp - 0x24], 0xd0a
jmp 0x443c49
mov dword [ebp - 0x24], 0xffffffff
jmp 0x443c49
mov dword [ebp - 0x24], 0xfffffffe
jmp 0x443c49
mov eax, 0xffffffe9
jmp 0x444651
cmp dword [ebp - 0x24], 0xfffffffe
jne 0x443c5b
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x18], 2
jmp 0x443cba
cmp dword [ebp - 0x24], 0
jns 0x443c6d
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x18], 1
jmp 0x443cba
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x18], 0
cmp dword [ebp - 0x24], 0xff
jle 0x443ca5
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x1c], 2
mov eax, dword [ebp - 0x24]
sar eax, 8
mov edx, eax
mov eax, dword [ebp - 0x5c]
mov byte [eax + 0x2c], dl
mov eax, dword [ebp - 0x24]
mov edx, eax
mov eax, dword [ebp - 0x5c]
mov byte [eax + 0x2d], dl
jmp 0x443cba
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x1c], 1
mov eax, dword [ebp - 0x24]
mov edx, eax
mov eax, dword [ebp - 0x5c]
mov byte [eax + 0x2c], dl
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x78]
test eax, eax
je 0x443cdf
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0xc]
movzx eax, ax
and eax, 1
test eax, eax
je 0x443cdf
mov eax, 0xfffffff3
jmp 0x444651
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 8]
and eax, 7
mov dword [ebp - 0x74], eax
mov ecx, dword [ebp + 0x24]
mov edx, 0x55555556
mov eax, ecx
imul edx
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
add eax, eax
add eax, edx
sub ecx, eax
mov edx, ecx
mov eax, dword [ebp + 0x24]
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0x12]
test ax, ax
je 0x443d86
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0x12]
movzx ebx, ax
mov ecx, dword [ebp - 0x14]
mov edx, 0x55555556
mov eax, ecx
imul edx
sar ecx, 0x1f
mov eax, edx
sub eax, ecx
cmp ebx, eax
jl 0x443d86
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0x12]
movzx eax, ax
lea edx, [eax + 1]
mov eax, edx
add eax, eax
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [sub.msvcrt.dll_malloc]
mov edx, dword [ebp - 0x14]
shl edx, 2
mov dword [esp], edx
call eax
mov edx, dword [ebp - 0x5c]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x443d7d
mov eax, 0xfffffffa
jmp 0x444651
mov dword [ebp - 0x28], 1
jmp 0x443d8f
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp + 0x20]
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x14]
mov dword [eax + 0x10], edx
mov eax, dword [ebp - 0x14]
lea ecx, [eax + eax]
mov edx, 0x55555556
mov eax, ecx
imul edx
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x14], edx
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x38], 0
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x80], 0xffffffff
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0x10]
movzx eax, ax
add eax, 1
add eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp + 0x24]
jle 0x443deb
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x443e2e
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x14]
shl eax, 2
lea ebx, [edx + eax]
mov eax, dword [ebp - 0x10]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov edx, eax
mov eax, 1
sub eax, edx
shl eax, 2
lea esi, [ebx + eax]
jmp 0x443e27
mov dword [ebx], 0xffffffff
sub ebx, 4
cmp ebx, esi
jae 0x443e21
cmp dword [ebp - 0x64], 0
jne 0x443eaf
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0xc]
movzx eax, ax
and eax, 2
test eax, eax
je 0x443e8d
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0x14]
movzx eax, ax
and eax, 0xff
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0x14]
movzx eax, ax
and eax, 0x100
test eax, eax
setne al
movzx eax, al
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 1
jne 0x443eaf
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x30]
mov eax, dword [ebp - 0x18]
add eax, edx
movzx eax, byte [eax]
movzx eax, al
mov dword [ebp - 0x18], eax
jmp 0x443eaf
cmp dword [ebp - 0x68], 0
jne 0x443eaf
cmp dword [ebp - 0x4c], 0
je 0x443eaf
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 4]
and eax, 1
test eax, eax
je 0x443eaf
mov eax, dword [ebp - 0x4c]
add eax, 8
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0xc]
movzx eax, ax
and eax, 4
test eax, eax
je 0x443f03
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0x16]
movzx eax, ax
and eax, 0xff
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0x16]
movzx eax, ax
and eax, 0x100
test eax, eax
setne al
movzx eax, al
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x1c]
lea edx, [eax + 0x100]
mov eax, dword [ebp - 0x34]
add eax, edx
movzx eax, byte [eax]
movzx eax, al
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x443f33
mov eax, dword [ebp - 0x5c]
mov ebx, dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
shl eax, 2
lea esi, [ebx + eax]
jmp 0x443f2f
mov eax, ebx
lea ebx, [eax + 4]
mov dword [eax], 0xffffffff
cmp ebx, esi
jb 0x443f24
cmp dword [ebp - 0x6c], 0
je 0x444018
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x58], eax
jmp 0x443f49
add dword [ebp - 0x58], 1
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x68]
cmp dword [ebp - 0x58], eax
jae 0x444012
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x443fb6
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x68]
cmp dword [ebp - 0x58], eax
jae 0x443fa1
mov eax, dword [ebp - 0x5c]
lea ebx, [eax + 0x1c]
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x68]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0x70]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x58]
mov dword [esp], eax
call fcn.0044465c
test eax, eax
jne 0x443fa8
mov eax, 1
jmp 0x443fad
mov eax, 0
and eax, 1
test al, al
jne 0x443f45
jmp 0x444012
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x68]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x1c]
neg eax
add eax, edx
cmp dword [ebp - 0x58], eax
ja 0x443ffb
mov eax, dword [ebp - 0x58]
movzx edx, byte [eax]
mov eax, dword [ebp - 0x5c]
movzx eax, byte [eax + 0x2c]
cmp dl, al
jne 0x443ffb
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x1c]
cmp eax, 1
je 0x444002
mov eax, dword [ebp - 0x58]
add eax, 1
movzx edx, byte [eax]
mov eax, dword [ebp - 0x5c]
movzx eax, byte [eax + 0x2d]
cmp dl, al
je 0x444002
mov eax, 1
jmp 0x444007
mov eax, 0
and eax, 1
test al, al
jne 0x443f45
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x1c]
and eax, 0x4000000
test eax, eax
jne 0x44420b
cmp dword [ebp - 0x18], 0
js 0x44408a
cmp dword [ebp - 0x2c], 0
je 0x44406b
jmp 0x44403a
add dword [ebp - 0x3c], 1
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x40]
jae 0x44420b
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x30]
mov eax, dword [ebp - 0x3c]
movzx eax, byte [eax]
movzx eax, al
add eax, edx
movzx eax, byte [eax]
movzx eax, al
cmp dword [ebp - 0x18], eax
jne 0x444036
jmp 0x44420b
add dword [ebp - 0x3c], 1
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x40]
jae 0x44420b
mov eax, dword [ebp - 0x3c]
movzx eax, byte [eax]
movzx eax, al
cmp dword [ebp - 0x18], eax
jne 0x444067
jmp 0x44420b
cmp dword [ebp - 0x68], 0
je 0x4441c9
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x64]
mov eax, dword [ebp + 0x18]
add eax, edx
cmp dword [ebp - 0x3c], eax
jbe 0x44420b
jmp 0x4440ae
add dword [ebp - 0x3c], 1
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x40]
jae 0x44418e
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x444118
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x64]
cmp dword [ebp - 0x3c], eax
jbe 0x444103
mov eax, dword [ebp - 0x5c]
lea ebx, [eax + 0x1c]
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x64]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0x70]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
call fcn.004447a1
test eax, eax
jne 0x44410a
mov eax, 1
jmp 0x44410f
mov eax, 0
and eax, 1
test al, al
jne 0x4440aa
jmp 0x44418e
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x64]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x1c]
add eax, edx
cmp dword [ebp - 0x3c], eax
jb 0x444177
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x1c]
neg eax
mov edx, eax
mov eax, dword [ebp - 0x3c]
add eax, edx
movzx edx, byte [eax]
mov eax, dword [ebp - 0x5c]
movzx eax, byte [eax + 0x2c]
cmp dl, al
jne 0x444177
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x1c]
cmp eax, 1
je 0x44417e
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x1c]
mov ecx, eax
mov eax, 1
sub eax, ecx
mov edx, eax
mov eax, dword [ebp - 0x3c]
add eax, edx
movzx edx, byte [eax]
mov eax, dword [ebp - 0x5c]
movzx eax, byte [eax + 0x2d]
cmp dl, al
je 0x44417e
mov eax, 1
jmp 0x444183
mov eax, 0
and eax, 1
test al, al
jne 0x4440aa
mov eax, dword [ebp - 0x3c]
sub eax, 1
movzx eax, byte [eax]
cmp al, 0xd
jne 0x44420b
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
cmp eax, 1
je 0x4441b1
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
cmp eax, 2
jne 0x44420b
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x40]
jae 0x44420b
mov eax, dword [ebp - 0x3c]
movzx eax, byte [eax]
cmp al, 0xa
jne 0x44420b
add dword [ebp - 0x3c], 1
jmp 0x44420b
cmp dword [ebp - 0x38], 0
je 0x44420b
jmp 0x444200
mov eax, dword [ebp - 0x3c]
movzx eax, byte [eax]
movzx ebx, al
mov edx, ebx
shr edx, 3
mov eax, dword [ebp - 0x38]
add eax, edx
movzx eax, byte [eax]
movzx edx, al
mov eax, ebx
and eax, 7
mov ecx, eax
sar edx, cl
mov eax, edx
and eax, 1
test eax, eax
jne 0x44420a
add dword [ebp - 0x3c], 1
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x40]
jb 0x4441d1
jmp 0x44420b
nop
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x1c]
and eax, 0x4000000
test eax, eax
jne 0x4442eb
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x78]
test eax, eax
jne 0x4442eb
cmp dword [ebp - 0x4c], 0
je 0x444260
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 4]
and eax, 2
test eax, eax
je 0x444260
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x3c]
mov edx, eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x28]
cmp edx, eax
jae 0x444260
mov dword [ebp - 0xc], 0
jmp 0x444530
cmp dword [ebp - 0x1c], 0
js 0x4442eb
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x3c]
cmp eax, 0x3e7
jg 0x4442eb
cmp dword [ebp - 0x18], 0
js 0x444284
mov edx, 1
jmp 0x444289
mov edx, 0
mov eax, dword [ebp - 0x3c]
lea ebx, [edx + eax]
cmp ebx, dword [ebp - 0x48]
jbe 0x4442eb
cmp dword [ebp - 0x30], 0
je 0x4442d2
jmp 0x4442b6
mov eax, ebx
lea ebx, [eax + 1]
movzx eax, byte [eax]
movzx esi, al
cmp esi, dword [ebp - 0x1c]
je 0x4442b1
cmp esi, dword [ebp - 0x20]
jne 0x4442b6
sub ebx, 1
jmp 0x4442d7
cmp ebx, dword [ebp - 0x40]
jb 0x44429c
jmp 0x4442d7
mov eax, ebx
lea ebx, [eax + 1]
movzx eax, byte [eax]
movzx eax, al
cmp dword [ebp - 0x1c], eax
jne 0x4442d2
sub ebx, 1
jmp 0x4442d7
cmp ebx, dword [ebp - 0x40]
jb 0x4442bd
cmp ebx, dword [ebp - 0x40]
jb 0x4442e8
mov dword [ebp - 0xc], 0
jmp 0x444530
mov dword [ebp - 0x48], ebx
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x6c], edx
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x74], edx
mov eax, dword [ebp - 0x5c]
mov dword [eax], 0
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x60]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov edx, dword [ebp - 0x74]
mov dword [esp + 0x14], edx
mov edx, dword [ebp - 0x5c]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 2
mov edx, dword [ebp - 0x3c]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
call fcn.0043e470
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x58]
test eax, eax
je 0x44436c
cmp dword [ebp - 0x44], 0
jne 0x44436c
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x74]
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0xc], 0
je 0x4443be
cmp dword [ebp - 0xc], 0
jg 0x444529
cmp dword [ebp - 0xc], 0xfffffc1c
je 0x4443be
cmp dword [ebp - 0xc], 0xfffffc1c
jg 0x444529
cmp dword [ebp - 0xc], 0xfffffc1b
je 0x4443c9
cmp dword [ebp - 0xc], 0xfffffc1b
jg 0x444529
cmp dword [ebp - 0xc], 0xfffffc19
je 0x4443d4
cmp dword [ebp - 0xc], 0xfffffc1a
jne 0x444529
mov eax, dword [ebp - 0x3c]
add eax, 1
mov dword [ebp - 0x54], eax
jmp 0x4443e0
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x6c]
mov dword [ebp - 0x54], eax
jmp 0x4443e0
mov dword [ebp - 0xc], 0
jmp 0x444530
mov dword [ebp - 0xc], 0
cmp dword [ebp - 0x6c], 0
je 0x4444a7
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x44444b
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x68]
cmp dword [ebp - 0x3c], eax
jae 0x444441
mov eax, dword [ebp - 0x5c]
lea ebx, [eax + 0x1c]
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x68]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0x70]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
call fcn.0044465c
test eax, eax
je 0x444441
mov eax, 1
jmp 0x444446
mov eax, 0
and eax, 1
jmp 0x44449f
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x68]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x1c]
neg eax
add eax, edx
cmp dword [ebp - 0x3c], eax
ja 0x444497
mov eax, dword [ebp - 0x3c]
movzx edx, byte [eax]
mov eax, dword [ebp - 0x5c]
movzx eax, byte [eax + 0x2c]
cmp dl, al
jne 0x444497
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x1c]
cmp eax, 1
je 0x444490
mov eax, dword [ebp - 0x3c]
add eax, 1
movzx edx, byte [eax]
mov eax, dword [ebp - 0x5c]
movzx eax, byte [eax + 0x2d]
cmp dl, al
jne 0x444497
mov eax, 1
jmp 0x44449c
mov eax, 0
and eax, 1
test al, al
jne 0x44452c
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x64], 0
jne 0x44452f
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x40]
ja 0x44452f
mov eax, dword [ebp - 0x3c]
sub eax, 1
movzx eax, byte [eax]
cmp al, 0xd
jne 0x443f03
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x40]
jae 0x443f03
mov eax, dword [ebp - 0x3c]
movzx eax, byte [eax]
cmp al, 0xa
jne 0x443f03
mov eax, dword [ebp - 0x50]
movzx eax, word [eax + 0xc]
movzx eax, ax
and eax, 0x20
test eax, eax
jne 0x443f03
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
cmp eax, 1
je 0x444520
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
cmp eax, 2
je 0x444520
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x1c]
cmp eax, 2
jne 0x443f03
add dword [ebp - 0x3c], 1
jmp 0x443f03
nop
jmp 0x444530
nop
jmp 0x444530
nop
cmp dword [ebp - 0xc], 1
jne 0x4445f7
cmp dword [ebp - 0x28], 0
je 0x444597
cmp dword [ebp + 0x24], 3
jle 0x444572
mov eax, dword [ebp + 0x24]
sub eax, 2
lea ecx, [eax*4]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0xc]
lea edx, [eax + 8]
mov eax, dword [ebp + 0x20]
add eax, 8
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x7c]
cmp dword [ebp + 0x24], eax
jge 0x444587
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x38], 1
mov eax, dword [fcn.004ab508]
mov edx, dword [ebp - 0x5c]
mov edx, dword [edx + 0xc]
mov dword [esp], edx
call eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x38]
test eax, eax
jne 0x4445b2
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x7c]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
jmp 0x4445b7
mov eax, 0
mov dword [ebp - 0xc], eax
cmp dword [ebp + 0x24], 1
jg 0x4445c9
mov dword [ebp - 0xc], 0
jmp 0x4445f2
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x6c]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x64]
sub edx, eax
mov eax, dword [ebp + 0x20]
mov dword [eax], edx
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x70]
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax + 0x64]
mov eax, dword [ebp + 0x20]
add eax, 4
sub edx, ecx
mov dword [eax], edx
mov eax, dword [ebp - 0xc]
jmp 0x444651
cmp dword [ebp - 0x28], 0
je 0x44460d
mov eax, dword [fcn.004ab508]
mov edx, dword [ebp - 0x5c]
mov edx, dword [edx + 0xc]
mov dword [esp], edx
call eax
cmp dword [ebp - 0xc], 0
je 0x44461e
cmp dword [ebp - 0xc], 0xfffffff4
je 0x44461e
mov eax, dword [ebp - 0xc]
jmp 0x444651
cmp dword [ebp - 0x44], 0
je 0x44464c
cmp dword [ebp + 0x24], 1
jle 0x444645
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp + 0x10]
mov edx, eax
mov eax, dword [ebp + 0x20]
mov dword [eax], edx
mov eax, dword [ebp + 0x20]
lea edx, [eax + 4]
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp + 0x10]
mov dword [edx], eax
mov eax, 0xfffffff4
jmp 0x444651
mov eax, 0xffffffff
add esp, 0x190
pop ebx
pop esi
pop ebp
ret