Function at 0x61477c
Capabilities:
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x368
mov eax, dword [0x43a400]
xor eax, esp
mov dword [esp + 0x364], eax
mov eax, edx
mov dword [esp + 0x78], ecx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x154], edx
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x144], edx
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x128], edx
mov edx, dword [ebp + 0x20]
mov ecx, dword [ebp + 8]
mov dword [esp + 0xe8], edx
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x150], edx
mov edx, dword [ebp + 0x28]
mov dword [esp + 0x130], edx
mov edx, dword [ebp + 0x2c]
mov dword [esp + 0x148], edx
mov edx, dword [ebp + 0x30]
mov dword [esp + 0x138], edx
mov edx, dword [ebp + 0x40]
mov dword [esp + 0x13c], edx
mov edx, dword [ebp + 0x44]
mov dword [esp + 0x120], edx
mov edx, dword [ebp + 0x48]
mov dword [esp + 0xd8], edx
mov edx, dword [ebp + 0x4c]
mov dword [esp + 0x124], edx
mov edx, dword [ebp + 0x50]
mov dword [esp + 0x12c], edx
mov edx, dword [ebp + 0x58]
mov dword [esp + 0xec], edx
mov edx, dword [ebp + 0x5c]
mov dword [esp + 0xdc], eax
mov dword [esp], ecx
mov dword [esp + 0xe0], edx
push esi
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x144], esi
push edi
test eax, eax
je 0x614867
cmp word [eax + 8], 0
jbe 0x614867
cmp byte [eax + 0xa], 0x2f
mov dword [esp + 0xc4], 1
je 0x614872
mov dword [esp + 0xc4], 0
xor edx, edx
mov dword [esp + 0x38], 0x200
mov dword [esp + 0x3c], edx
lea eax, [esp + 0x168]
or edx, 0xffffffff
mov dword [esp + 0x28], eax
mov dword [esp + 0xdc], edx
or eax, 0xffffffff
or edx, edx
mov dword [esp + 0xbc], eax
mov dword [esp + 0xf8], edx
or eax, eax
or edx, 0xffffffff
mov dword [esp + 0xc0], eax
xor edi, edi
mov dword [esp + 0xec], edx
or eax, 0xffffffff
mov dword [esp + 0xc], edi
or edx, edx
mov dword [esp + 0x7c], eax
mov dword [esp + 0xfc], edx
mov dword [esp + 0xd0], edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x74], edi
mov dword [esp + 0x88], edi
test esi, esi
je 0x6148fb
mov eax, dword [esi + 4]
cmp dword [eax + 0x20], edi
jne 0x6148fb
xor eax, eax
mov dword [esp + 0x48], eax
jmp 0x614903
mov dword [esp + 0x48], 1
movdqa xmm0, xmmword [0x438420]
xor eax, eax
mov edx, dword [ebp + 0xc]
xor edi, edi
mov dword [esp + 0x50], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0xc8], eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x24]
mov dword [esp + 0xdc], 0xffffffff
push eax
lea eax, [esp + 0x70]
mov dword [esp + 0xd4], 0xffffffff
push eax
lea eax, [esp + 0x58]
mov dword [esp + 0xc4], 0xffffffff
push eax
mov dword [esp + 0xe4], 0xffffffff
mov dword [esp + 0x34], edi
mov dword [esp + 0x110], 0xffffffff
mov dword [esp + 0x114], 0xffffffff
mov dword [esp + 0x118], 0xffffffff
mov dword [esp + 0x11c], 0xffffffff
mov dword [esp + 0x120], 0xffffffff
mov dword [esp + 0x124], 0xffffffff
movdqa xmmword [esp + 0xa0], xmm0
mov dword [esp + 0xb0], 0xffffffff
call fcn.0061424c
mov esi, eax
add esp, 0x10
mov dword [esp + 0x54], esi
test esi, esi
js 0x614bcf
mov edi, dword [esp + 8]
jmp 0x6149ec
mov eax, dword [esp + 0x4c]
cmp eax, 0xffffffff
je 0x614c65
test eax, eax
js 0x614b9d
mov edx, dword [esp + 0x68]
lea ecx, [edi + eax]
sub edx, eax
call fcn.006062dc
mov dword [esp + 0xc], eax
cmp eax, dword [0x443d08]
jne 0x614b68
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x44]
mov ecx, edi
push eax
push 0
push 0
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.00613c4c
add esp, 0x14
mov dword [esp + 0x58], eax
test eax, eax
js 0x614c16
mov esi, dword [esp + 0x40]
mov ecx, 0x43eb44
sub esi, dword [esp + 0x34]
add edi, dword [esp + 0x34]
push esi
mov edx, edi
call fcn.00624a0c
add esp, 4
test eax, eax
jne 0x614a75
mov dword [esp + 0x48], eax
jmp 0x614b54
push esi
mov edx, edi
mov ecx, 0x43eb4c
call fcn.00624a0c
add esp, 4
test eax, eax
jne 0x614a96
mov dword [esp + 0x48], 1
jmp 0x614b54
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x614ac8
push 0xc
call fcn.00625480
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x614c00
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov edx, esi
mov ecx, edi
call fcn.006062dc
mov edx, dword [esp + 0x24]
mov edi, eax
cmp dword [edx + 8], 0
jne 0x614b0a
push 0x14
call fcn.00625480
mov edx, dword [esp + 0x28]
add esp, 4
mov dword [edx + 8], eax
test eax, eax
jne 0x614b03
push 0x43b378
push 1
call fcn.006060bc
add esp, 8
jmp 0x614b54
mov dword [edx + 4], 5
mov eax, dword [edx]
cmp dword [edx + 4], eax
jg 0x614b4a
lea esi, [eax*2 + 1]
lea eax, [esi*4]
push eax
push dword [edx + 8]
call fcn.006255d6
add esp, 8
test eax, eax
jne 0x614b40
push 0x43b394
push 1
call fcn.006060bc
add esp, 8
jmp 0x614b54
mov edx, dword [esp + 0x24]
mov dword [edx + 8], eax
mov dword [edx + 4], esi
mov ecx, dword [edx]
mov eax, dword [edx + 8]
mov dword [eax + ecx*4], edi
inc dword [edx]
cmp dword [esp + 0x44], 0
mov edi, dword [esp + 8]
jne 0x614b86
mov edx, dword [esp + 0x58]
jmp 0x614a23
mov ecx, dword [esp + 0xc8]
mov edx, 1
cmp eax, dword [0x443ce4]
cmove ecx, edx
mov dword [esp + 0xc8], ecx
jmp 0x614b8e
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0xc]
mov ecx, eax
call fcn.006063cc
mov dword [esp + 0xc], 0
lea eax, [esp + 0x2c]
mov edx, esi
push eax
lea eax, [esp + 0x24]
mov ecx, edi
push eax
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0061424c
mov esi, eax
mov dword [esp + 0x64], eax
add esp, 0x10
test esi, esi
jns 0x6149ec
mov edi, dword [esp + 0x24]
push 0x43eb00
push 1
call fcn.006060bc
add esp, 8
test edi, edi
je 0x614be9
mov ecx, edi
call fcn.0060669c
or eax, 0xffffffff
pop edi
pop esi
mov ecx, dword [esp + 0x364]
xor ecx, esp
call fcn.006253f9
mov esp, ebp
pop ebp
ret
push 0x43eb58
push 1
xor edi, edi
call fcn.006060bc
add esp, 8
jmp 0x615778
push 0x43eb24
push 1
call fcn.006060bc
add esp, 8
test byte [0x43fedc], 1
je 0x614c51
mov eax, dword [0x443d10]
test eax, eax
je 0x614c51
mov ecx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x30]
sub eax, ecx
push 1
push eax
lea eax, [edi + ecx]
push eax
call fcn.00626a60
add esp, 0x10
push 0x43eb40
push 1
call fcn.006060bc
add esp, 8
jmp 0x615774
mov esi, dword [esp + 8]
lea eax, [esp + 0x2c]
mov edx, dword [ebp + 0xc]
mov ecx, esi
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0061424c
add esp, 0x10
mov dword [esp + 0x58], eax
test eax, eax
js 0x615749
mov edi, dword [esp + 0x90]
mov dword [esp + 0x10], edi
jmp 0x614cac
mov eax, dword [esp + 0x4c]
cmp eax, 0xffffffff
je 0x615ecc
test eax, eax
jns 0x614cde
push 0x43eb9c
push 2
call fcn.006060bc
add esp, 8
cmp dword [0x43f03c], 0
je 0x615758
jmp 0x615719
mov edx, dword [esp + 0x68]
lea ecx, [esi + eax]
sub edx, eax
mov dword [esp + 0x64], ecx
call fcn.006062dc
mov ecx, eax
mov dword [esp + 0xc], ecx
cmp ecx, dword [0x443ccc]
jne 0x614e10
mov esi, dword [esp + 0x20]
lea eax, [esp + 0x44]
mov edi, dword [esp + 8]
mov edx, esi
push eax
push 0
push 0
lea eax, [esp + 0x4c]
mov ecx, edi
push eax
lea eax, [esp + 0x44]
push eax
call fcn.00613c4c
add esp, 0x14
mov dword [esp + 0x30], eax
test eax, eax
js 0x614dc0
lea esp, [esp]
mov esi, dword [esp + 0x40]
mov ecx, 0x43ebe4
sub esi, dword [esp + 0x34]
add edi, dword [esp + 0x34]
push esi
mov edx, edi
call fcn.00624a0c
add esp, 4
test eax, eax
jne 0x614d62
mov dword [esp + 0x48], eax
jmp 0x614d84
push esi
mov edx, edi
mov ecx, 0x43ebec
call fcn.00624a0c
mov ecx, dword [esp + 0x4c]
add esp, 4
test eax, eax
mov eax, 1
cmove ecx, eax
mov dword [esp + 0x48], ecx
cmp dword [esp + 0x44], 0
jne 0x6156fe
mov edi, dword [esp + 8]
lea eax, [esp + 0x44]
mov edx, dword [esp + 0x30]
mov ecx, edi
push eax
push 0
push 0
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.00613c4c
add esp, 0x14
mov dword [esp + 0x30], eax
test eax, eax
jns 0x614d3c
mov esi, dword [esp + 0x20]
push 0x43ebbc
push 2
call fcn.006060bc
add esp, 8
test byte [0x43fedc], 2
je 0x614df7
mov eax, dword [0x443d10]
test eax, eax
je 0x614df7
push eax
mov eax, dword [esp + 0x30]
sub eax, esi
push 1
push eax
lea eax, [edi + esi]
push eax
call fcn.00626a60
add esp, 0x10
push 0x43ebe0
push 2
call fcn.006060bc
mov dword [esp + 0x50], 0
jmp 0x6156fb
cmp ecx, dword [0x443ca0]
jne 0x614f0a
mov esi, dword [esp + 0x20]
mov edx, esi
mov edi, dword [esp + 8]
mov ecx, edi
call fcn.006139cc
test eax, eax
jns 0x614e85
push 0x43ebf8
push 2
call fcn.006060bc
add esp, 8
test byte [0x43fedc], 2
je 0x614e68
mov eax, dword [0x443d10]
test eax, eax
je 0x614e68
push eax
mov eax, dword [esp + 0x30]
sub eax, esi
push 1
push eax
lea eax, [edi + esi]
push eax
call fcn.00626a60
add esp, 0x10
push 0x43ec1c
push 2
call fcn.006060bc
add esp, 8
mov esi, edi
or eax, 0xffffffff
mov dword [esp + 0x7c], eax
jmp 0x615702
call fcn.00625c21
push 0xa
add edi, esi
mov dword [eax], 0
lea eax, [esp + 0x60]
push eax
push edi
call fcn.0062669b
add esp, 0xc
mov dword [esp + 0x7c], eax
call fcn.00625c21
cmp dword [eax], 0x22
je 0x614eba
cmp dword [esp + 0x5c], edi
ja 0x6156fe
push 0x43ec20
push 2
call fcn.006060bc
add esp, 8
test byte [0x43fedc], 2
je 0x614eee
mov eax, dword [0x443d10]
test eax, eax
je 0x614eee
push eax
mov eax, dword [esp + 0x30]
push 1
sub eax, esi
push eax
push edi
call fcn.00626a60
add esp, 0x10
push 0x43ec44
push 2
call fcn.006060bc
mov dword [esp + 0x84], 0xffffffff
jmp 0x6156fb
cmp dword [esp + 0xc4], 0
mov esi, dword [0x443cc4]
jne 0x614fe9
cmp ecx, dword [0x443cd8]
je 0x614ff1
cmp ecx, dword [0x443c88]
jne 0x615133
mov eax, dword [0x443bac]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x30], edi
test eax, eax
je 0x614f8d
cmp eax, 1
jne 0x6156fe
cmp dword [esp + 0xe4], 0
mov esi, dword [esp + 8]
je 0x615702
mov ecx, dword [esp + 0x20]
mov eax, edi
sub eax, ecx
push eax
lea eax, [esi + ecx]
push eax
mov eax, dword [esp + 0xec]
movzx edx, word [eax + 8]
lea ecx, [eax + 0xa]
call fcn.0061461c
add esp, 8
test eax, eax
je 0x615702
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
lea eax, [ecx - 2]
cmp esi, eax
jle 0x615068
mov edx, dword [esp + 0x28]
jmp 0x614fac
lea edi, [ecx + ecx]
cmp edi, ecx
jle 0x615e3c
lea eax, [esp + 0x168]
push edi
cmp edx, eax
jne 0x61502e
call fcn.00625480
mov esi, eax
add esp, 4
test esi, esi
je 0x615e3c
push dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
push eax
push esi
call fcn.0062cc9c
add esp, 0xc
jmp 0x615041
cmp ecx, esi
jne 0x614f2a
cmp dword [esp + 0xe8], 0
je 0x6156fe
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
sub edx, eax
js 0x615e2c
mov esi, dword [esp + 8]
lea ecx, [esi + eax]
call fcn.0060610c
mov edi, eax
mov dword [esp + 0x6c], edi
test edi, edi
je 0x615e32
jmp 0x615702
push edx
call fcn.006255d6
mov esi, eax
add esp, 8
test esi, esi
je 0x615e3c
mov ecx, edi
mov edx, esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x28], edx
test esi, esi
je 0x615774
mov esi, dword [esp + 0x3c]
lea eax, [edi - 2]
cmp esi, eax
jg 0x614fac
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov word [esi + eax], 0xa0d
add esi, 2
sub edi, dword [esp + 0x4c]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x30], edi
xor ecx, ecx
mov edx, esi
test esi, esi
js 0x6150c0
test edi, edi
jle 0x6150a9
add esi, eax
cmp edx, dword [esp + 0x38]
jge 0x6150bc
mov eax, dword [esp + 0x64]
inc edx
mov al, byte [ecx + eax]
mov byte [esi + ecx], al
inc ecx
cmp ecx, edi
jl 0x61508f
mov eax, dword [esp + 0x28]
cmp edx, dword [esp + 0x38]
jge 0x6150c0
test edx, edx
js 0x6150c0
mov dword [esp + 0x3c], edx
jmp 0x6156fe
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
lea edi, [edx + edx]
cmp edi, edx
jle 0x615e3c
lea ecx, [esp + 0x168]
push edi
cmp eax, ecx
jne 0x615101
call fcn.00625480
mov esi, eax
add esp, 4
test esi, esi
je 0x615e3c
push dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
push eax
push esi
call fcn.0062cc9c
add esp, 0xc
jmp 0x615114
push eax
call fcn.006255d6
mov esi, eax
add esp, 8
test esi, esi
je 0x615e3c
mov dword [esp + 0x38], edi
mov eax, esi
mov dword [esp + 0x28], eax
test esi, esi
je 0x615774
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x3c]
jmp 0x615081
cmp ecx, dword [0x443c9c]
je 0x615ec2
cmp ecx, dword [0x443c90]
je 0x615ec2
cmp ecx, dword [0x443c7c]
je 0x615caa
cmp ecx, dword [0x443c74]
je 0x615caa
cmp ecx, dword [0x443ca4]
je 0x615caa
cmp ecx, dword [0x443c98]
je 0x615caa
cmp ecx, dword [0x443cfc]
je 0x615caa
cmp ecx, dword [0x443cf8]
je 0x615caa
cmp ecx, dword [0x443ce8]
je 0x615caa
cmp ecx, dword [fcn.00443cb0]
jne 0x615259
mov edi, dword [esp + 0x20]
mov edx, edi
mov esi, dword [esp + 8]
mov ecx, esi
call fcn.006139cc
test eax, eax
js 0x615206
call fcn.00625c21
push 0xa
add esi, edi
mov dword [eax], 0
lea eax, [esp + 0x60]
push eax
push esi
call fcn.0062669b
add esp, 0xc
mov dword [esp + 0x60], eax
call fcn.00625c21
cmp dword [eax], 0x22
je 0x615202
cmp dword [esp + 0x5c], esi
jbe 0x615202
cmp dword [esp + 0x60], 0
mov esi, dword [esp + 8]
jge 0x615702
jmp 0x61520e
mov esi, dword [esp + 8]
mov dword [esp + 0x60], 0xffffffff
push 0x43eca4
push 2
call fcn.006060bc
add esp, 8
test byte [0x43fedc], 2
je 0x615245
mov eax, dword [0x443d10]
test eax, eax
je 0x615245
push eax
mov eax, dword [esp + 0x30]
sub eax, edi
push 1
push eax
lea eax, [esi + edi]
push eax
call fcn.00626a60
add esp, 0x10
push 0x43ecbc
push 2
call fcn.006060bc
add esp, 8
jmp 0x615702
cmp ecx, dword [0x443cc8]
jne 0x6152b6
mov esi, dword [esp + 0x20]
mov edx, esi
mov edi, dword [esp + 8]
mov ecx, edi
call fcn.006139cc
test eax, eax
js 0x615e4f
call fcn.00625c21
push 0xa
add esi, edi
mov dword [eax], 0
lea eax, [esp + 0x60]
push eax
push esi
call fcn.0062669b
add esp, 0xc
call fcn.00625c21
cmp dword [eax], 0x22
je 0x615e45
cmp dword [esp + 0x5c], esi
jbe 0x615e45
mov esi, edi
jmp 0x615702
cmp ecx, dword [0x443cb4]
jne 0x615314
mov esi, dword [esp + 0x2c]
mov ecx, 0x43ed0c
mov edi, dword [esp + 8]
sub esi, dword [esp + 0x20]
add edi, dword [esp + 0x20]
push esi
mov edx, edi
call fcn.00624a0c
add esp, 4
test eax, eax
jne 0x6152f0
xor edi, edi
mov dword [esp + 0xd0], edi
jmp 0x6156fe
push esi
mov edx, edi
mov ecx, 0x43ed18
call fcn.00624a0c
add esp, 4
neg eax
sbb eax, eax
and eax, 0xfffffffe
inc eax
mov dword [esp + 0xd0], eax
jmp 0x6156fe
cmp ecx, dword [0x443c78]
je 0x615bab
cmp ecx, dword [0x443ce0]
je 0x615bab
cmp ecx, dword [0x443cac]
je 0x615bab
cmp ecx, dword [0x443cd4]
je 0x615bab
cmp ecx, dword [0x443ce4]
jne 0x61563e
mov esi, dword [esp + 8]
lea eax, [esp + 0x44]
mov edx, dword [esp + 0x20]
mov ecx, esi
push eax
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.00613c4c
add esp, 0x14
mov dword [esp + 0x64], eax
test eax, eax
js 0x61561c
mov edi, edi
mov eax, dword [esp + 0x40]
mov ecx, 0x43ed80
mov edi, dword [esp + 8]
mov esi, eax
sub esi, dword [esp + 0x34]
add edi, dword [esp + 0x34]
push esi
mov edx, edi
mov dword [esp + 0x34], eax
call fcn.00624a0c
add esp, 4
test eax, eax
jne 0x6153c2
mov edi, dword [esp + 0x10]
or edi, 2
jmp 0x6155cc
push esi
mov edx, edi
mov ecx, 0x43ed8c
call fcn.00624a0c
add esp, 4
test eax, eax
jne 0x6153e2
mov edi, dword [esp + 0x10]
or edi, 4
jmp 0x6155cc
push esi
mov edx, edi
mov ecx, 0x43ed94
call fcn.00624a0c
add esp, 4
test eax, eax
jne 0x615402
mov edi, dword [esp + 0x10]
or edi, 8
jmp 0x6155cc
push esi
mov edx, edi
mov ecx, 0x43ed9c
call fcn.00624a0c
add esp, 4
test eax, eax
jne 0x615422
mov edi, dword [esp + 0x10]
or edi, 0x10
jmp 0x6155cc
push esi
mov edx, edi
mov ecx, 0x43eda8
call fcn.00624a0c
add esp, 4
test eax, eax
jne 0x615442
mov edi, dword [esp + 0x10]
or edi, 0x20
jmp 0x6155cc
push esi
mov edx, edi
mov ecx, 0x43edc0
call fcn.00624a0c
add esp, 4
test eax, eax
je 0x6155c5
push esi
mov edx, edi
mov ecx, 0x43edd0
call fcn.00624a0c
add esp, 4
test eax, eax
je 0x6155c5
push esi
mov edx, edi
mov ecx, 0x43ede0
call fcn.00624a0c
add esp, 4
test eax, eax
jne 0x615495
mov edi, dword [esp + 0x10]
or edi, 0x80
jmp 0x6155cc
push esi
mov edx, edi
mov ecx, 0x43edf4
call fcn.00624a0c
add esp, 4
test eax, eax
jne 0x6154b8
mov edi, dword [esp + 0x10]
or edi, 0x100
jmp 0x6155cc
push esi
mov edx, edi
mov ecx, 0x43edb8
call fcn.00624a0c
add esp, 4
test eax, eax
je 0x6155b9
push esi
mov edx, edi
mov ecx, 0x43ee04
call fcn.00624a0c
add esp, 4
test eax, eax
je 0x6155b9
push esi
mov edx, edi
mov ecx, 0x43ee0c
call fcn.00624a0c
add esp, 4
test eax, eax
je 0x6155b9
push esi
mov edx, edi
mov ecx, 0x43ee18
call fcn.00624a0c
add esp, 4
test eax, eax
je 0x6155b9
push esi
mov edx, edi
mov ecx, 0x43ee24
call fcn.00624a0c
add esp, 4
test eax, eax
jne 0x61555e
lea eax, [esp + 0xa0]
mov esi, dword [esp + 8]
mov ecx, esi
mov edx, dword [esp + 0x34]
push eax
push dword [esp + 0x90]
push dword [esp + 0x5c]
push dword [esp + 0x3c]
call fcn.0061458c
mov edi, dword [esp + 0xa0]
add esp, 0x10
jmp 0x6155d7
push 0x43ee30
push 2
call fcn.006060bc
add esp, 8
test byte [0x43fedc], 2
je 0x6155a0
mov eax, dword [0x443d10]
test eax, eax
je 0x6155a0
mov ecx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x90]
test eax, eax
push 1
cmovns ecx, eax
sub ecx, dword [esp + 0x3c]
push ecx
push edi
call fcn.00626a60
add esp, 0x10
push 0x43ee58
push 2
call fcn.006060bc
mov edi, dword [esp + 0x18]
add esp, 8
mov esi, dword [esp + 8]
jmp 0x6155db
lea eax, [esp + 0x94]
jmp 0x615533
mov edi, dword [esp + 0x10]
or edi, 0x40
mov esi, dword [esp + 8]
mov dword [esp + 0x90], edi
mov dword [esp + 0x10], edi
cmp dword [esp + 0x44], 0
jne 0x615702
mov edx, dword [esp + 0x64]
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x90]
mov ecx, esi
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.00613c4c
add esp, 0x14
mov dword [esp + 0x64], eax
test eax, eax
jns 0x61538c
push 0x43ed60
push 2
call fcn.006060bc
add esp, 8
or edi, 2
mov dword [esp + 0x10], edi
mov dword [esp + 0x90], edi
jmp 0x615702
cmp ecx, dword [0x443cbc]
jne 0x61568c
cmp dword [esp + 0x80], 0
jne 0x615e9a
mov esi, dword [esp + 0x20]
lea eax, [esp + 0x114]
mov edi, dword [esp + 8]
mov edx, esi
push eax
lea eax, [esp + 0x114]
mov ecx, edi
push eax
lea eax, [esp + 0x114]
push eax
call fcn.006143bc
add esp, 0xc
test eax, eax
js 0x615e59
mov esi, edi
jmp 0x615702
cmp ecx, dword [0x443cec]
jne 0x6157d1
cmp dword [esp + 0x80], 0
je 0x6156ef
mov esi, dword [esp + 8]
lea eax, [esp + 0x104]
mov edx, dword [esp + 0x20]
mov ecx, esi
push eax
lea eax, [esp + 0x104]
push eax
call fcn.006144cc
add esp, 8
test eax, eax
jns 0x615702
push 0x43eea8
push 2
call fcn.006060bc
add esp, 8
mov dword [esp + 0x100], 0xffffffff
mov dword [esp + 0x104], 0xffffffff
jmp 0x615702
push 0x43eecc
push 2
call fcn.006060bc
add esp, 8
mov esi, dword [esp + 8]
mov edi, dword [esp + 0xc]
mov ecx, edi
call fcn.006063cc
mov edi, dword [esp + 0x10]
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0x58]
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x24]
mov ecx, esi
push eax
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0061424c
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x58], ecx
test ecx, ecx
jns 0x614cac
push 0x43eb78
push 1
call fcn.006060bc
add esp, 8
mov eax, dword [esp + 0x28]
test eax, eax
je 0x615774
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x615774
push eax
call fcn.00625408
add esp, 4
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0xc]
test eax, eax
je 0x615787
mov ecx, eax
call fcn.006063cc
mov eax, dword [esp + 0x74]
test eax, eax
je 0x615798
push eax
call fcn.00625408
add esp, 4
mov eax, dword [esp + 0x50]
test eax, eax
je 0x6157a7
mov ecx, eax
call fcn.006063cc
mov eax, dword [esp + 0x84]
test eax, eax
je 0x6157b9
mov ecx, eax
call fcn.006063cc
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x614bde
mov ecx, eax
call fcn.006063cc
jmp 0x614bde
cmp ecx, dword [0x443d0c]
je 0x6156fe
cmp ecx, dword [0x443c80]
jne 0x615861
cmp dword [esp + 0xf4], 0
je 0x6156fe
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
sub edx, eax
js 0x615eae
mov ecx, dword [esp + 8]
add ecx, eax
call fcn.0060610c
mov esi, eax
test esi, esi
je 0x615eae
mov eax, dword [esp + 0x50]
test eax, eax
je 0x615858
lea ecx, [esi + 0xa]
push ecx
lea ecx, [eax + 0xa]
push ecx
push 0x43ef24
call fcn.0060645c
add esp, 0xc
mov ecx, esi
mov edi, eax
call fcn.006063cc
test edi, edi
je 0x615ea4
mov ecx, dword [esp + 0x50]
call fcn.006063cc
mov dword [esp + 0x50], edi
jmp 0x6156fe
mov dword [esp + 0x50], esi
jmp 0x6156fe
cmp ecx, dword [0x443c84]
jne 0x6158a6
cmp dword [esp + 0xe0], 0
mov esi, dword [esp + 8]
je 0x615702
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
sub edx, eax
lea ecx, [esi + eax]
call fcn.006062dc
mov dword [esp + 0x84], eax
test eax, eax
jne 0x615702
push 0x43ef44
jmp 0x61574e
cmp dword [esp + 0x80], 0
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jne 0x6158eb
cmp ecx, dword [0x444e2c]
jne 0x6158eb
mov edx, dword [esp + 8]
sub eax, edi
push eax
mov ecx, 0x43ef60
lea edx, [edx + edi]
call fcn.00624a0c
add esp, 4
test eax, eax
je 0x615eb8
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [0x443cd0]
jne 0x615970
mov esi, eax
mov ecx, 0x43efa8
sub esi, edi
add edi, dword [esp + 8]
push esi
mov edx, edi
call fcn.00624a0c
add esp, 4
test eax, eax
je 0x615960
push esi
mov edx, edi
mov ecx, 0x43efb0
call fcn.00624a0c
add esp, 4
test eax, eax
je 0x615960
push 0x43efb4
push 0x40
call fcn.006060bc
add esp, 8
test byte [0x43fedc], 0x40
je 0x615951
mov eax, dword [0x443d10]
test eax, eax
je 0x615951
push eax
push 1
push esi
push edi
call fcn.00626a60
add esp, 0x10
push 0x43efcc
push 0x40
call fcn.006060bc
add esp, 8
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
or edi, 0x200
jmp 0x61597e
mov edi, dword [esp + 0x10]
cmp ecx, esi
jne 0x615989
or edi, 0x400
mov dword [esp + 0x90], edi
mov dword [esp + 0x10], edi
cmp ecx, dword [0x443cf0]
jne 0x615a4c
cmp dword [esp + 0xc8], 0
jne 0x615a4c
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x44]
mov ecx, dword [esp + 8]
push eax
push 0
push 0
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.00613c4c
mov esi, eax
add esp, 0x14
test esi, esi
js 0x615a2b
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
sub ecx, edx
add edx, dword [esp + 8]
push ecx
mov ecx, 0x43efe8
call fcn.00624a0c
add esp, 4
test eax, eax
mov eax, 2
cmove edi, eax
cmp dword [esp + 0x44], 0
mov dword [esp + 0x10], edi
mov dword [esp + 0x90], edi
jne 0x615a48
mov ecx, dword [esp + 8]
lea eax, [esp + 0x44]
push eax
push 0
push 0
lea eax, [esp + 0x4c]
mov edx, esi
push eax
lea eax, [esp + 0x44]
push eax
call fcn.00613c4c
mov esi, eax
add esp, 0x14
test esi, esi
jns 0x6159cc
push 0x43efd0
push 2
call fcn.006060bc
add esp, 8
or edi, 2
mov dword [esp + 0x10], edi
mov dword [esp + 0x90], edi
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0x80], 0
jne 0x615a7f
cmp ecx, dword [0x443d00]
je 0x615a6e
cmp ecx, dword [0x443cb8]
je 0x615a6e
cmp ecx, dword [0x443c94]
jne 0x615a7f
or edi, 0x800
mov dword [esp + 0x10], edi
mov dword [esp + 0x90], edi
mov esi, dword [esp + 0x28]
test esi, esi
je 0x6156fe
cmp ecx, dword [0x443d08]
je 0x6156fe
cmp ecx, dword [0x443cf4]
je 0x6156fe
cmp ecx, dword [0x443d04]
je 0x6156fe
cmp ecx, dword [0x443cc0]
je 0x6156fe
cmp ecx, dword [0x443ca8]
je 0x6156fe
cmp ecx, dword [0x443cdc]
je 0x6156fe
mov edi, dword [esp + 0x24]
test edi, edi
je 0x615aea
mov edx, edi
call fcn.0060679c
test eax, eax
jne 0x6156fe
mov edx, dword [0x443c8c]
call fcn.0060679c
test eax, eax
jne 0x6156fe
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
lea eax, [ecx - 2]
cmp edx, eax
jle 0x615b3f
lea eax, [esp + 0x168]
mov ecx, esi
push eax
lea edx, [esp + 0x3c]
call fcn.006146ec
mov esi, eax
add esp, 4
mov dword [esp + 0x28], esi
test esi, esi
je 0x615778
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
lea eax, [ecx - 2]
cmp edx, eax
jg 0x615b0c
mov eax, dword [esp + 0x30]
mov word [edx + esi], 0xa0d
add edx, 2
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x30], eax
lea esp, [esp]
push eax
push dword [esp + 0x68]
push ecx
mov ecx, esi
call fcn.0062494c
add esp, 0xc
test eax, eax
jns 0x615ba2
lea eax, [esp + 0x168]
mov ecx, esi
push eax
lea edx, [esp + 0x3c]
call fcn.006146ec
mov esi, eax
add esp, 4
mov dword [esp + 0x28], esi
test esi, esi
je 0x615778
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
jmp 0x615b5c
mov dword [esp + 0x3c], eax
jmp 0x6156fe
mov esi, dword [esp + 0x20]
lea eax, [esp + 0x154]
mov ecx, dword [esp + 8]
mov edx, esi
push eax
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x12c]
push eax
call fcn.00613bcc
add esp, 0xc
test eax, eax
jns 0x615bf8
mov al, byte [ecx + esi]
cmp al, 0xd
je 0x615e25
cmp al, 0xa
je 0x615e25
push 0x43ed20
push 1
jmp 0x6156f6
cmp dword [esp + 0x154], 0
je 0x615c0c
push 0x43ed38
jmp 0x6156f4
mov eax, dword [esp + 0x124]
mov esi, ecx
mov edx, dword [esp + 0x13c]
sub edx, eax
lea ecx, [esi + eax]
call fcn.006248ac
test eax, eax
je 0x615758
mov edi, dword [esp + 0xc]
cmp edi, dword [0x443c78]
jne 0x615c4a
cmp dword [esp + 0x74], 0
jne 0x615c9c
mov dword [esp + 0x74], eax
jmp 0x615706
cmp edi, dword [0x443ce0]
jne 0x615c62
cmp dword [esp + 0x78], 0
jne 0x615c9c
mov dword [esp + 0x78], eax
jmp 0x615706
cmp edi, dword [0x443cac]
jne 0x615c7a
cmp dword [esp + 0x70], 0
jne 0x615c9c
mov dword [esp + 0x70], eax
jmp 0x615706
cmp edi, dword [0x443cd4]
jne 0x6161a0
cmp dword [esp + 0x88], 0
jne 0x615c9c
mov dword [esp + 0x88], eax
jmp 0x615706
push eax
call fcn.00625408
add esp, 4
jmp 0x615706
mov esi, dword [esp + 0x2c]
lea eax, [esp + 0x118]
mov edi, dword [esp + 0x20]
mov edx, edi
mov ecx, dword [esp + 8]
push eax
push esi
call fcn.0061c08c
add esp, 8
test eax, eax
jns 0x615d37
mov eax, dword [esp + 0xc]
cmp eax, dword [0x443c74]
je 0x615d22
add eax, 0xa
push eax
push 0x43ec8c
push 2
call fcn.006060bc
add esp, 0xc
test byte [0x43fedc], 2
je 0x615d13
mov eax, dword [0x443d10]
test eax, eax
je 0x615d13
push eax
mov eax, dword [esp + 0xc]
sub esi, edi
push 1
add eax, edi
push esi
push eax
call fcn.00626a60
add esp, 0x10
push 0x43eca0
push 2
call fcn.006060bc
add esp, 8
or eax, 0xffffffff
or ecx, eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], ecx
jmp 0x615d45
mov ecx, dword [esp + 0x11c]
mov eax, dword [esp + 0x118]
mov esi, dword [esp + 0xc]
cmp esi, dword [0x443c7c]
jne 0x615d76
test ecx, ecx
jl 0x6156fe
jg 0x615d63
test eax, eax
jb 0x6156fe
mov dword [esp + 0xdc], eax
mov dword [esp + 0xf8], ecx
jmp 0x6156fe
cmp esi, dword [0x443c74]
jne 0x615dc8
test ecx, ecx
jl 0x615d9b
jg 0x615d88
test eax, eax
jb 0x615d9b
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
jmp 0x6156fe
xorps xmm0, xmm0
movlpd qword [esp + 0x160], xmm0
mov eax, dword [esp + 0x164]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0xbc], eax
jmp 0x6156fe
cmp esi, dword [0x443cfc]
jne 0x615de3
mov dword [esp + 0xec], eax
mov dword [esp + 0xfc], ecx
jmp 0x6156fe
cmp esi, dword [0x443ca4]
jne 0x615dfe
mov dword [esp + 0xd8], eax
mov dword [esp + 0xcc], ecx
jmp 0x6156fe
cmp esi, dword [0x443c98]
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 8]
jne 0x615706
mov dword [esp + 0xb8], eax
mov dword [esp + 0xd4], ecx
jmp 0x615706
mov esi, ecx
jmp 0x615702
xor eax, eax
mov dword [esp + 0x6c], eax
push 0x43ec48
jmp 0x61574e
mov eax, dword [esp + 0x28]
jmp 0x615760
push 0x43ecec
jmp 0x61574e
push 0x43eccc
jmp 0x61574e
push 0x43ee68
push 1
call fcn.006060bc
add esp, 8
test byte [0x43fedc], 1
je 0x615e90
mov eax, dword [0x443d10]
test eax, eax
je 0x615e90
push eax
mov eax, dword [esp + 0x30]
sub eax, esi
push 1
push eax
lea eax, [edi + esi]
push eax
call fcn.00626a60
add esp, 0x10
push 0x43ee88
jmp 0x61574e
push 0x43ee8c
jmp 0x61574e
push 0x43ef2c
jmp 0x61574e
push 0x43ef0c
jmp 0x61574e
push 0x43ef78
jmp 0x61574e
push 0x43ec6c
jmp 0x61574e
mov esi, dword [esp + 0x15c]
test esi, esi
je 0x615ef6
mov edx, dword [esp + 0x3c]
test edx, edx
js 0x615758
mov ecx, dword [esp + 0x28]
call fcn.0060610c
test eax, eax
je 0x615758
mov dword [esi], eax
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x168]
cmp eax, ecx
je 0x615f0e
push eax
call fcn.00625408
add esp, 4
mov ecx, dword [esp + 0x148]
test ecx, ecx
je 0x615f24
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x615f24
and dword [ecx], 0xfffffffe
mov edi, dword [esp + 0xd0]
or ecx, 0xffffffff
mov eax, dword [esp + 0x7c]
test edi, edi
cmovne eax, ecx
mov ecx, dword [esp + 0x14c]
test ecx, ecx
je 0x615f44
mov dword [ecx], eax
mov ecx, dword [esp + 0x130]
test ecx, ecx
je 0x615f66
movdqu xmm0, xmmword [esp + 0x90]
mov eax, dword [esp + 0xa0]
movdqu xmmword [ecx], xmm0
mov dword [ecx + 0x10], eax
cmp dword [esp + 0xf0], 0
je 0x616042
cmp dword [esp + 0xcc], 0
jg 0x615fbc
jl 0x615f8a
cmp dword [esp + 0xd8], 0
jae 0x615fbc
cmp dword [esp + 0xd4], 0
jg 0x615fbc
jl 0x615fa0
cmp dword [esp + 0xb8], 0
jae 0x615fbc
cmp dword [esp + 0x70], 0
jne 0x615fbc
cmp dword [esp + 0x78], 0
jne 0x615fbc
cmp dword [esp + 0x88], 0
jne 0x615fbc
xor esi, esi
jmp 0x616039
call fcn.006129ec
mov esi, eax
test esi, esi
je 0x616008
mov eax, dword [esp + 0xd8]
mov dword [esi], eax
mov eax, dword [esp + 0xcc]
mov dword [esi + 4], eax
mov eax, dword [esp + 0xb8]
mov dword [esi + 8], eax
mov eax, dword [esp + 0xd4]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x70]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x78]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x88]
mov dword [esi + 0x18], eax
jmp 0x616039
push 0x43eff4
push 1
call fcn.006060bc
mov eax, dword [esp + 0x78]
add esp, 8
test eax, eax
je 0x616028
push eax
call fcn.00625408
add esp, 4
mov eax, dword [esp + 0x78]
test eax, eax
je 0x616039
push eax
call fcn.00625408
add esp, 4
mov eax, dword [esp + 0xf0]
mov dword [eax], esi
mov eax, dword [esp + 0x158]
test eax, eax
je 0x61604f
mov dword [eax], edi
mov eax, dword [esp + 0x138]
test eax, eax
je 0x61606d
mov edx, dword [esp + 0xdc]
mov dword [eax], edx
mov edx, dword [esp + 0xf8]
mov dword [eax + 4], edx
mov eax, dword [esp + 0x150]
test eax, eax
je 0x61608b
mov edx, dword [esp + 0xec]
mov dword [eax], edx
mov edx, dword [esp + 0xfc]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x140]
test ecx, ecx
je 0x6160a9
mov eax, dword [esp + 0xbc]
mov dword [ecx], eax
mov eax, dword [esp + 0xc0]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x144]
test ecx, ecx
je 0x6160ba
mov eax, dword [esp + 0x60]
mov dword [ecx], eax
mov ecx, dword [esp + 0x128]
mov eax, dword [esp + 0x74]
test ecx, ecx
je 0x6160cd
mov dword [ecx], eax
jmp 0x6160da
test eax, eax
je 0x6160da
push eax
call fcn.00625408
add esp, 4
mov ecx, dword [esp + 0x12c]
test ecx, ecx
je 0x6160fc
movq xmm0, qword [esp + 0x100]
mov eax, dword [esp + 0x108]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x134]
test ecx, ecx
je 0x61611e
movq xmm0, qword [esp + 0x10c]
mov eax, dword [esp + 0x114]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0xf4]
mov eax, dword [esp + 0x50]
test ecx, ecx
je 0x616131
mov dword [ecx], eax
jmp 0x61613c
test eax, eax
je 0x61613c
mov ecx, eax
call fcn.006063cc
mov ecx, dword [esp + 0xe0]
mov eax, dword [esp + 0x84]
test ecx, ecx
je 0x616152
mov dword [ecx], eax
jmp 0x61615d
test eax, eax
je 0x61615d
mov ecx, eax
call fcn.006063cc
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0x6c]
test ecx, ecx
je 0x616170
mov dword [ecx], eax
jmp 0x61617b
test eax, eax
je 0x61617b
mov ecx, eax
call fcn.006063cc
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x616188
call fcn.0060669c
mov ecx, dword [esp + 0x36c]
mov eax, dword [esp + 0x58]
pop edi
pop esi
xor ecx, esp
call fcn.006253f9
mov esp, ebp
pop ebp
ret
call fcn.00625a34
int3