Function at 0x40e80f
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x1b8
mov ecx, dword [esp + 0x1bc]
push ebx
xor eax, eax
push ebp
mov ax, word [ecx]
push esi
push edi
xor esi, esi
push eax
mov dword [esp + 0x40], esi
call fcn.0046ab90
mov edi, eax
add esp, 4
cmp edi, esi
mov dword [esp + 0x10], edi
je 0x410d4f
call fcn.00407b40
mov ebx, dword [edi + 0x5c]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x60]
mov dword [esp + 0x28], ebx
test eax, 0x2000000
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], esi
je 0x40c628
and eax, 0xfde
mov dword [esp + 0x34], 1
or ebx, eax
mov dword [esp + 0x28], ebx
test ebx, 0x82000
je 0x40c977
test ebx, 0x80000
jne 0x410d4f
xor eax, eax
mov ax, word [edi + 0x109]
cmp eax, esi
je 0x410d4f
push eax
call fcn.00461550
mov ebx, eax
add esp, 4
cmp ebx, esi
je 0x410d4f
mov edx, dword [edi + 0x50]
push edx
call fcn.004680f0
add esp, 4
push eax
push 0x5e92
call fcn.004680f0
mov ebp, dword [esp + 0x1d8]
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x573424
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov al, byte [ebp]
add esp, 0x10
test al, al
je 0x40c6d4
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5dc3
call fcn.004680f0
push eax
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._s:1
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov al, byte [ebp]
add esp, 0x10
test al, al
je 0x40c72d
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
mov ax, word [ebx + 0x70a]
push eax
push 0x5e94
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._s:_d
add ecx, ebp
push ecx
call dword [0x56c1a4]
movsx eax, byte [ebx + 0x710]
add esp, 0x10
cmp eax, 1
mov dword [esp + 0x3c], eax
jle 0x40c7d2
cmp byte [ebp], 0
je 0x40c7a6
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x3c]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push eax
push 0x5f38
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._s:_d
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0x10
cmp byte [ebp], 0
je 0x40c802
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
mov ax, word [ebx + 0x168]
push eax
push 0x5dc6
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._s:_d
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ax, word [ebx + 0x16a]
push eax
push 0x5dc7
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._s:_d
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ax, word [ebx + 0x170]
push eax
push 0x5dca
call fcn.004680f0
add esp, 4
or ecx, 0xffffffff
mov edi, ebp
push eax
push str._s:_d
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ax, word [ebx + 0x16e]
push eax
push 0x5dc9
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._s:_d
add ecx, ebp
push ecx
call dword [0x56c1a4]
lea ecx, [ebx + 0x188]
push ecx
push 0
push ebp
call fcn.00409e70
add ebx, 0x17f
push ebx
push 1
push ebp
call fcn.00409e70
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1b8
ret
mov ecx, 0x38
xor eax, eax
lea edi, [esp + 0x64]
mov ebp, dword [esp + 0x1d0]
rep stosd dword es:[edi], eax
mov esi, dword [0x56c1a4]
stosw word es:[edi], ax
test byte [0x606338], 1
je 0x40ca34
mov eax, dword [0x5e64a8]
dec eax
jne 0x40ca34
cmp byte [ebp], 0
je 0x40c9dc
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
push 0x5348
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004680f0
push eax
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._2_s_A
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov esi, dword [0x56c1a4]
add esp, 0x10
test bl, 1
je 0x40cc45
cmp byte [ebp], 0
je 0x40ca73
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [0x56c1a4]
mov eax, dword [esp + 0x34]
push 0x4f61
test eax, eax
je 0x40cac0
call fcn.004680f0
add esp, 4
push eax
push 0x5269
call fcn.004680f0
add esp, 4
push eax
push 0x5e6d
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._s_3_s_s_1
add ecx, ebp
push ecx
call esi
add esp, 0x14
jmp 0x40caf0
call fcn.004680f0
add esp, 4
push eax
push 0x5e6d
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x573240
add ecx, ebp
push ecx
call esi
add esp, 0x10
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
push 0x5dce
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x1c], 2
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
test ebx, 0x8000000
rep movsb byte es:[edi], byte [esi]
je 0x40cb6a
push ebp
mov dword [esp + 0x20], eax
push 0x5dcf
jmp 0x40cbcc
test ebx, 0x1000000
je 0x40cb82
push ebp
mov dword [esp + 0x20], 1
push 0x5dd0
jmp 0x40cbcc
test ebx, 0x800000
je 0x40cb92
push ebp
push 0x5dd1
jmp 0x40cbcc
test ebx, 0x2000000
je 0x40cba2
push ebp
push 0x5dd2
jmp 0x40cbcc
test ebx, 0x4000000
je 0x40cbba
push ebp
mov dword [esp + 0x20], 0
push 0x5dd3
jmp 0x40cbcc
test ebx, 0x10400000
je 0x40cd78
push ebp
push 0x5dd4
push 0
call fcn.004084e0
mov al, byte [ebp]
add esp, 0xc
test al, al
je 0x40cc07
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x1c]
add eax, 0x5e50
push eax
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x40cd78
test bl, 0xc0
je 0x40d007
cmp byte [ebp], 0
je 0x40cc84
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [0x56c1a4]
mov eax, dword [esp + 0x34]
push 0x4f62
test eax, eax
je 0x40ccd1
call fcn.004680f0
add esp, 4
push eax
push 0x5269
call fcn.004680f0
add esp, 4
push eax
push 0x5e6d
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._s_3_s_s_1
add ecx, ebp
push ecx
call esi
add esp, 0x14
jmp 0x40cd01
call fcn.004680f0
add esp, 4
push eax
push 0x5e6d
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x573240
add ecx, ebp
push ecx
call esi
add esp, 0x10
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
push 0x5e43
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
test bl, 0x80
rep movsb byte es:[edi], byte [esi]
je 0x40cff3
push ebp
push 0x5e44
push 0
call fcn.004084e0
add esp, 0xc
mov eax, dword [esp + 0x1cc]
xor ebx, ebx
mov bx, word [eax + 0xc]
test ebx, ebx
je 0x40cf34
cmp byte [ebp], 0
je 0x40cdbd
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5dc0
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x57325c
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov edi, 0x5733fc
or ecx, 0xffffffff
xor eax, eax
push 0x5dd7
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x64
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x2c]
mov ax, word [ecx + 0x69]
imul eax, ebx
push eax
call fcn.00428090
fstp qword [esp + 0x4c]
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
push 2
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
not ecx
dec ecx
add ecx, ebp
push ecx
push edx
push eax
call fcn.00428100
add esp, 0x30
cmp ebx, 1
jle 0x40cf34
mov edi, 0x5733f8
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x64
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov ax, word [ecx + 0x69]
push eax
call fcn.00428090
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
push 2
repne scasb al, byte es:[edi]
fstp qword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
not ecx
dec ecx
add ecx, ebp
push ecx
push edx
push eax
call fcn.00428100
mov edi, 0x573204
or ecx, 0xffffffff
xor eax, eax
add esp, 0x1c
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], 0
test eax, 0x20000000
je 0x40dace
mov eax, dword [esp + 0x10]
xor esi, esi
mov si, word [eax + 0x109]
test esi, esi
mov dword [esp + 0x20], esi
je 0x40edfa
push esi
call fcn.0046c0a0
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
je 0x40edfa
cmp esi, 0xffff
jne 0x40d54d
cmp byte [ebp], 0
je 0x40cfb5
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x573238
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
push ebp
push 0x5e07
push 1
rep movsb byte es:[edi], byte [esi]
call fcn.004086b0
jmp 0x40edcd
test bl, 0x40
je 0x40cd78
push ebp
push 0x5e45
jmp 0x40cd6e
test bh, 0x10
je 0x40d013
mov edx, 0x4f62
jmp 0x40d084
test bl, 2
je 0x40d01f
mov edx, 0x4f5d
jmp 0x40d084
test bl, 4
je 0x40d02b
mov edx, 0x4f5c
jmp 0x40d084
test bl, 8
je 0x40d037
mov edx, 0x4f5f
jmp 0x40d084
test bl, 0x10
je 0x40d052
mov edx, dword [esp + 0x34]
neg edx
sbb edx, edx
and edx, 0x307
add edx, 0x4f63
jmp 0x40d084
test bh, 1
je 0x40d05e
mov edx, 0x4f64
jmp 0x40d084
test bh, 2
je 0x40d06a
mov edx, 0x4f60
jmp 0x40d084
test bh, 4
je 0x40d076
mov edx, 0x4f5e
jmp 0x40d084
test bh, 8
je 0x40d13b
mov edx, 0x4f65
cmp byte [ebp], 0
je 0x40d0ba
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [0x56c1a4]
mov eax, dword [esp + 0x34]
push edx
test eax, eax
je 0x40d106
call fcn.004680f0
add esp, 4
push eax
push 0x5269
call fcn.004680f0
add esp, 4
push eax
push 0x5e6d
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._s_3_s_s_1
add ecx, ebp
push ecx
call esi
add esp, 0x14
jmp 0x40cd78
call fcn.004680f0
add esp, 4
push eax
push 0x5e6d
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x573240
add ecx, ebp
push ecx
call esi
add esp, 0x10
jmp 0x40cd78
test ebx, 0x20000
je 0x40d2e0
cmp byte [ebp], 0
je 0x40d177
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0
call fcn.00529c81
mov ecx, dword [esp + 0x1d0]
add esp, 4
mov edi, 0x573274
cmp eax, dword [ecx + 0x23]
ja 0x40d197
mov edi, 0x573238
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x1cc]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [eax + 0x23]
test eax, eax
jne 0x40d1f2
mov ecx, 9
lea edi, [esp + 0x40]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
sub ecx, 0x76c
dec eax
lea ebx, [esp + 0x40]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], eax
jmp 0x40d1fd
push eax
call fcn.00427e40
add esp, 4
mov ebx, eax
push 0x5e7a
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
push eax
mov eax, dword [ebx + 0x10]
push ecx
mov ecx, dword [ebx + 0x14]
inc eax
push edx
add ecx, 0x76c
push eax
push ecx
push 0x5e73
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
push 3
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x30]
mov ax, word [ecx + 0x65]
push eax
push ebp
push 0
push 0
call fcn.00414e50
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
add esp, 0x30
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x40cd78
test ebx, 0x100000
je 0x40cd78
mov ecx, dword [esp + 0x1cc]
xor eax, eax
mov ax, word [ecx + 0x25]
test eax, eax
mov dword [esp + 0x20], eax
je 0x40d35c
cmp word [ecx], 0x13e2
je 0x40d35c
cmp byte [ebp], 0
je 0x40d342
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x20]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [0x56c1a4]
push eax
push 0x5e83
call fcn.004680f0
add esp, 4
push eax
push str._s:_d
push ebp
call esi
add esp, 0x10
cmp byte [ebp], 0
je 0x40d38c
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x573274
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
test ebx, 0x80000000
rep movsb byte es:[edi], byte [esi]
je 0x40d3c6
push ebp
push 0x5dd5
jmp 0x40d3d6
test dword [esp + 0x38], 0x20000000
je 0x40d3e0
push ebp
push 0x5f19
push 0
call fcn.004084e0
add esp, 0xc
test ebx, 0x40000000
je 0x40d3f7
push ebp
push 0x5dd6
push eax
call fcn.004084e0
add esp, 0xc
push ebp
push 0x5e82
push eax
call fcn.004084e0
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebx, dword [esp + 0x1cc]
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [ebx + 0x27], 2
jne 0x40d4ee
cmp byte [ebp], 0
je 0x40d471
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x20]
push eax
push 0x5e84
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._2_s_1
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
add ebx, 0x28
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x20
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call fcn.005289b0
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1b8
ret
push 0x1000
call fcn.0041a6a0
add esp, 4
test eax, eax
je 0x410d4f
cmp byte [ebp], 0
je 0x40d533
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
add ebx, 0x28
push 0x20
push ebx
push ebp
call fcn.005289b0
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1b8
ret
mov ebx, dword [esp + 0x10]
xor eax, eax
mov ax, word [ebx + 0x10b]
test eax, eax
mov dword [esp + 0x18], eax
jle 0x40d869
mov eax, dword [esp + 0x1cc]
push ebp
push ebx
push eax
call fcn.0040a5c0
mov ax, word [ebx + 0x115]
add esp, 0xc
test ax, ax
jbe 0x40d64a
mov ecx, dword [esp + 0x24]
cmp word [ecx + 0x3ba], ax
jae 0x40d5bf
mov edi, 0x573274
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
mov ax, word [ebx + 0x115]
push eax
push 0x5f2f
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
mov ebx, dword [0x56c1a4]
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._s:_d
add ecx, ebp
push ecx
call ebx
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5731f8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x40d650
mov ebx, dword [0x56c1a4]
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x573238
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x2c]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [eax + 8]
cmp eax, 2
jne 0x40d6e1
mov ecx, dword [esp + 0x18]
push ecx
push 0x5f2d
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call ebx
push 0x4e33
call fcn.004680f0
add esp, 0x10
jmp 0x40d72b
cmp eax, 1
jne 0x40d719
mov eax, dword [esp + 0x18]
push eax
push 0x5f2d
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call ebx
push 0x4e34
call fcn.004680f0
add esp, 0x10
jmp 0x40d72b
cmp eax, 4
jne 0x40d752
push 0x5f32
call fcn.004680f0
add esp, 4
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 4]
push ecx
call fcn.004680f0
push eax
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x5733ec
add ecx, ebp
push ecx
call ebx
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x2c]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [eax + 8], 4
jne 0x40d80d
mov ecx, dword [esp + 0x18]
push ecx
push 0x5f31
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x5733e4
add ecx, ebp
push ecx
call ebx
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5731f8
jmp 0x40edd5
mov eax, dword [esp + 0x18]
dec eax
push eax
push 0x5f2e
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call ebx
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5731f8
jmp 0x40edd5
cmp byte [ebp], 0
je 0x40d89d
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
xor eax, eax
push esi
mov al, byte [ebx + 0x338]
push eax
call fcn.0046b960
mov edi, eax
add esp, 8
test edi, edi
mov dword [esp + 0x18], edi
je 0x40d996
cmp esi, 0x226
jge 0x40d93a
mov al, byte [esi + ebx + 0xb60]
test al, al
je 0x40d93a
push 0x5298
call fcn.004680f0
add esp, 4
test eax, eax
je 0x40d93a
cmp byte [eax], 0
je 0x40d93a
push eax
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov ebx, dword [0x56c1a4]
push str._3_s_A
not ecx
dec ecx
add ecx, ebp
push ecx
call ebx
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x18]
jmp 0x40d940
mov ebx, dword [0x56c1a4]
mov ecx, dword [esp + 0x24]
xor eax, eax
mov ax, word [ecx + 0x3c8]
cmp eax, edi
jl 0x40d96b
mov edx, dword [esp + 0x18]
push edx
push 0x5e1d
call fcn.004680f0
add esp, 4
push eax
push 0x5733e4
jmp 0x40d983
mov eax, dword [esp + 0x18]
push eax
push 0x5e1d
call fcn.004680f0
add esp, 4
push eax
push str._2_s_d_1
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call ebx
jmp 0x40d9bb
push 0x5e1e
call fcn.004680f0
push eax
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._2_s_1
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov al, byte [ebp]
add esp, 0x10
test al, al
je 0x40d9ef
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5733cc
or ecx, 0xffffffff
xor eax, eax
mov ebx, 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x18], eax
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x20]
push eax
push ebx
call fcn.0046b960
mov ecx, dword [esp + 0x20]
add esp, 8
test ecx, ecx
mov dword [esp + 0x2c], eax
je 0x40da6c
mov edi, 0x5731d0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x2c]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x40da74
mov dword [esp + 0x18], 1
test eax, eax
je 0x40da90
push eax
lea eax, [ebx + 0x4e23]
push eax
call fcn.004680f0
add esp, 4
push eax
push 0x5733c4
jmp 0x40daa2
lea ecx, [ebx + 0x4e23]
push ecx
call fcn.004680f0
push eax
push str._s:__
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0x10
inc ebx
cmp ebx, 4
jle 0x40da22
mov edi, 0x573204
jmp 0x40edd5
test ah, 0x40
je 0x40dd06
mov ecx, dword [esp + 0x10]
xor eax, eax
mov ax, word [ecx + 0x109]
test eax, eax
mov dword [esp + 0x20], eax
je 0x40edfa
push eax
call fcn.00463730
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x40edfa
mov al, byte [ebp]
mov dword [esp + 0x2c], 1
test al, al
je 0x40db3c
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x573238
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 4]
push eax
call fcn.004680f0
add esp, 4
push eax
push 0x5ea7
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp word [ebx + 0x7a], ax
je 0x40dc21
mov edi, 0x5731f8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ax, word [ebx + 0x7a]
push eax
push 0x5357
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._6_s:_d_A
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0x10
cmp word [ebx + 0x78], 0
je 0x40dc82
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ax, word [ebx + 0x78]
push eax
push 0x5f24
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._6_s:_d_A
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0x10
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
add ecx, 0x8c3
push ecx
push edx
call fcn.00462310
add esp, 8
test eax, eax
je 0x40dd11
push 0x5299
call fcn.004680f0
mov edx, eax
add esp, 4
test edx, edx
je 0x40dd11
cmp byte [edx], 0
je 0x40dd11
cmp byte [ebp], 0
je 0x40dce6
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
push edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._3_s_A
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0xc
jmp 0x40dd11
test eax, 0x40000
jne 0x40edfa
mov eax, dword [esp + 0x10]
xor ebx, ebx
mov bl, byte [eax + 0xaa]
test ebx, ebx
je 0x40de75
mov ecx, ebx
and ecx, 0xf
cmp cl, 0xf
je 0x40de75
cmp byte [ebp], 0
je 0x40dd63
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x14], 0
mov al, byte [ecx + 0x338]
test eax, eax
je 0x40ddbb
lea ecx, [eax - 1]
mov edx, 1
shl edx, cl
test ebx, edx
jne 0x40ddbb
mov edi, 0x573274
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x14], 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5dcc
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
test bl, 1
rep movsb byte es:[edi], byte [esi]
je 0x40de03
push ebp
push 0x4e24
push eax
call fcn.004084e0
add esp, 0xc
test bl, 2
je 0x40de17
push ebp
push 0x4e25
push eax
call fcn.004084e0
add esp, 0xc
test bl, 4
je 0x40de2b
push ebp
push 0x4e26
push eax
call fcn.004084e0
add esp, 0xc
test bl, 8
je 0x40de3f
push ebp
push 0x4e27
push eax
call fcn.004084e0
add esp, 0xc
mov eax, dword [esp + 0x14]
test eax, eax
je 0x40de71
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
cmp word [eax + 0xa8], 1
ja 0x40ded7
mov ecx, dword [esp + 0x1cc]
mov dl, byte [ecx + 0x47]
test dl, dl
jne 0x40ded7
mov cl, byte [eax + 0xab]
test cl, cl
jne 0x40ded7
cmp word [eax + 0xac], 0
jne 0x40ded7
cmp word [eax + 0xae], 0
jne 0x40ded7
cmp word [eax + 0xb0], 0
jne 0x40ded7
cmp word [eax + 0xb2], 0
jne 0x40ded7
cmp word [eax + 0xb4], 0
jne 0x40ded7
cmp word [eax + 0xb6], 0
je 0x40e62b
cmp byte [ebp], 0
je 0x40df07
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
xor ebx, ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x5dc2
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x18], ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ecx + ebp - 1]
mov dword [esp + 0x24], eax
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x18], ebx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x573270
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x10]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1cc]
mov ax, word [eax + 0xa8]
mov edx, eax
mov cl, byte [ecx + 0x47]
and edx, 0xffff
movsx ebx, cl
add ebx, edx
cmp ebx, 1
jge 0x40dfd5
mov ebx, 1
cmp ax, 1
ja 0x40dfe3
test cl, cl
je 0x40e0aa
mov ecx, dword [esp + 0x24]
xor eax, eax
mov ax, word [ecx + 0x3c8]
cmp eax, ebx
jge 0x40e027
mov edi, dword [esp + 0x14]
or ecx, 0xffffffff
inc edi
xor eax, eax
mov dword [esp + 0x14], edi
mov edi, 0x573274
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push ebp
push 0x5dc3
push 0
call fcn.004084e0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
add esp, 0xc
test eax, eax
je 0x40e06d
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x1cc]
push ebx
movsx eax, byte [eax + 0x47]
test eax, eax
jge 0x40e084
push str._3_d_1
jmp 0x40e092
jle 0x40e08d
push str._2_d_1
jmp 0x40e092
push 0x57325c
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0xc
mov ecx, dword [esp + 0x10]
xor ebx, ebx
mov bx, word [ecx + 0xac]
test ebx, ebx
je 0x40e150
mov eax, dword [esp + 0x24]
xor ecx, ecx
movsx edx, word [eax + 0x498]
mov cx, word [eax + 0x48c]
add edx, ecx
cmp edx, ebx
jge 0x40e10c
mov edi, dword [esp + 0x14]
or ecx, 0xffffffff
inc edi
xor eax, eax
mov dword [esp + 0x14], edi
mov edi, 0x573274
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
push ebp
push 0x5dc6
push eax
call fcn.004084e0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
add esp, 0xc
test eax, eax
push ebx
je 0x40e133
push str._d_1
jmp 0x40e138
push 0x57325c
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0xc
mov ecx, dword [esp + 0x10]
xor ebx, ebx
mov bx, word [ecx + 0xae]
test ebx, ebx
je 0x40e221
mov esi, dword [esp + 0x24]
lea edx, [esi + 0x32c]
push edx
call fcn.00461350
movsx ecx, word [esi + 0x49a]
xor edx, edx
add esp, 4
mov dx, word [esi + 0x48e]
add ecx, edx
sub ecx, eax
cmp ecx, ebx
jge 0x40e1c3
mov edi, dword [esp + 0x14]
or ecx, 0xffffffff
inc edi
xor eax, eax
mov dword [esp + 0x14], edi
mov edi, 0x573274
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
push ebp
push 0x5dc7
push eax
call fcn.004084e0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
add esp, 0xc
test eax, eax
push ebx
je 0x40e204
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
mov esi, dword [0x56c1a4]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._d_1
add ecx, ebp
push ecx
call esi
add esp, 0xc
jmp 0x40e227
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
push 0x57325c
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0xc
mov esi, dword [0x56c1a4]
mov ecx, dword [esp + 0x10]
xor ebx, ebx
mov bx, word [ecx + 0xb0]
test ebx, ebx
je 0x40e2cf
mov eax, dword [esp + 0x24]
xor ecx, ecx
movsx edx, word [eax + 0x49c]
mov cx, word [eax + 0x490]
add edx, ecx
cmp edx, ebx
jge 0x40e28f
mov edi, dword [esp + 0x14]
or ecx, 0xffffffff
inc edi
xor eax, eax
mov dword [esp + 0x14], edi
mov edi, 0x573274
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [0x56c1a4]
mov eax, dword [esp + 0x18]
push ebp
push 0x5dc8
push eax
call fcn.004084e0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
add esp, 0xc
test eax, eax
push ebx
je 0x40e2b6
push str._d_1
jmp 0x40e2bb
push 0x57325c
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call esi
add esp, 0xc
mov ecx, dword [esp + 0x10]
xor ebx, ebx
mov bx, word [ecx + 0xb2]
test ebx, ebx
je 0x40e377
mov eax, dword [esp + 0x24]
xor ecx, ecx
movsx edx, word [eax + 0x49e]
mov cx, word [eax + 0x492]
add edx, ecx
cmp edx, ebx
jge 0x40e337
mov edi, dword [esp + 0x14]
or ecx, 0xffffffff
inc edi
xor eax, eax
mov dword [esp + 0x14], edi
mov edi, 0x573274
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [0x56c1a4]
mov eax, dword [esp + 0x18]
push ebp
push 0x5dc9
push eax
call fcn.004084e0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
add esp, 0xc
test eax, eax
push ebx
je 0x40e35e
push str._d_1
jmp 0x40e363
push 0x57325c
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call esi
add esp, 0xc
mov ecx, dword [esp + 0x10]
xor ebx, ebx
mov bx, word [ecx + 0xb4]
test ebx, ebx
je 0x40e41f
mov eax, dword [esp + 0x24]
xor ecx, ecx
movsx edx, word [eax + 0x4a0]
mov cx, word [eax + 0x494]
add edx, ecx
cmp edx, ebx
jge 0x40e3df
mov edi, dword [esp + 0x14]
or ecx, 0xffffffff
inc edi
xor eax, eax
mov dword [esp + 0x14], edi
mov edi, 0x573274
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [0x56c1a4]
mov eax, dword [esp + 0x18]
push ebp
push 0x5dca
push eax
call fcn.004084e0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
add esp, 0xc
test eax, eax
push ebx
je 0x40e406
push str._d_1
jmp 0x40e40b
push 0x57325c
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call esi
add esp, 0xc
mov ecx, dword [esp + 0x10]
xor ebx, ebx
mov bx, word [ecx + 0xb6]
test ebx, ebx
je 0x40e4c5
mov eax, dword [esp + 0x24]
xor ecx, ecx
movsx edx, word [eax + 0x4a2]
mov cx, word [eax + 0x496]
add edx, ecx
cmp edx, ebx
jge 0x40e481
mov edi, dword [esp + 0x14]
or ecx, 0xffffffff
inc edi
xor eax, eax
mov dword [esp + 0x14], edi
mov edi, 0x573274
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
push ebp
push 0x5dcb
push eax
call fcn.004084e0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
add esp, 0xc
test eax, eax
push ebx
je 0x40e4a8
push str._d_1
jmp 0x40e4ad
push 0x57325c
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0xc
mov ecx, dword [esp + 0x10]
xor eax, eax
mov al, byte [ecx + 0xab]
test eax, eax
je 0x40e61c
test al, 1
je 0x40e56b
mov edx, dword [esp + 0x24]
test byte [edx + 0x369], al
je 0x40e505
mov eax, dword [esp + 0x18]
push ebp
push 0x5dc5
push eax
call fcn.004084e0
add esp, 0xc
jmp 0x40e61c
mov edi, 0x573274
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x18]
mov ecx, edx
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x40e561
mov edi, 0x5731d0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5dc5
jmp 0x40e5f0
mov ecx, dword [esp + 0x24]
test byte [ecx + 0x369], al
je 0x40e58f
mov edx, dword [esp + 0x18]
push ebp
push 0x5dc4
push edx
call fcn.004084e0
add esp, 0xc
jmp 0x40e61c
mov edi, 0x573274
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x18]
mov ecx, edx
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x40e5eb
mov edi, 0x5731d0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5dc4
call fcn.004680f0
push eax
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._s_1
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov eax, dword [esp + 0x24]
add esp, 0x10
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x40e62b
mov eax, dword [esp + 0x20]
mov byte [eax], 0x32
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x40edfa
mov ecx, dword [esp + 0x10]
xor eax, eax
mov ax, word [ecx + 0x109]
test eax, eax
mov dword [esp + 0x20], eax
je 0x40edfa
cmp byte [ebp], 0
je 0x40e680
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x111]
test ebx, ebx
jne 0x40e693
mov ebx, 0xe10
mov eax, dword [esp + 0x28]
mov edi, 0x573270
and eax, 0x200000
mov dword [esp + 0x2c], eax
jne 0x40e6ac
mov edi, 0x573238
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x20]
mov ecx, edx
add eax, 0xffff0022
and ecx, 3
cmp eax, 0x20
rep movsb byte es:[edi], byte [esi]
ja case.0x40e6e3.65508
jmp dword [eax*4 + 0x410d5c]
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov cx, word [edx + 0x10b]
push ecx
push 0x5e54
jmp 0x40eae8
mov ecx, dword [esp + 0x10]
xor eax, eax
mov ax, word [ecx + 0x10b]
push eax
push 0x5394
jmp 0x40eae8
mov ecx, dword [esp + 0x10]
xor eax, eax
mov ax, word [ecx + 0x10b]
push eax
push 0x5e56
jmp 0x40eae8
mov ecx, dword [esp + 0x10]
xor eax, eax
mov ax, word [ecx + 0x10b]
push eax
push 0x5e57
jmp 0x40eae8
push 0x5e53
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
xor eax, eax
mov ax, word [ecx + 0x10b]
push eax
push 0x5e55
jmp 0x40eae8
push 0x5f06
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x40eb09
mov ecx, dword [esp + 0x10]
xor eax, eax
mov ax, word [ecx + 0x10b]
push eax
push 0x5f07
call fcn.004680f0
add esp, 4
jmp 0x40eba0
mov eax, dword [esp + 0x10]
xor edx, edx
mov dx, word [eax + 0x10b]
push edx
push 0x5f08
call fcn.004680f0
add esp, 4
jmp 0x40eba0
push 1
push 0x5f14
call fcn.004680f0
add esp, 4
jmp 0x40eba0
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov cx, word [edx + 0x10b]
push ecx
push 0x5f15
call fcn.004680f0
add esp, 4
jmp 0x40eba0
mov ecx, dword [esp + 0x10]
xor eax, eax
mov ax, word [ecx + 0x10b]
push eax
push 0x5f16
call fcn.004680f0
add esp, 4
jmp 0x40eba0
mov eax, dword [esp + 0x10]
xor edx, edx
mov dx, word [eax + 0x10b]
push edx
push 0x5f1c
call fcn.004680f0
add esp, 4
jmp 0x40eba0
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov cx, word [edx + 0x10b]
push ecx
push 0x5f20
call fcn.004680f0
add esp, 4
jmp 0x40eba0
mov ecx, dword [esp + 0x10]
xor eax, eax
mov ax, word [ecx + 0x10b]
push eax
push 0x5f21
call fcn.004680f0
add esp, 4
jmp 0x40eba0
mov eax, dword [esp + 0x10]
xor edx, edx
push 4
mov dx, word [eax + 0x10b]
push edx
push 0x52b3
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0x10
jmp 0x40edd0
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov cx, word [edx + 0x10b]
push ecx
push 0x5f2a
call fcn.004680f0
add esp, 4
jmp 0x40eba0
mov ecx, dword [esp + 0x10]
xor eax, eax
mov ax, word [ecx + 0x10b]
push eax
push 0x5f36
call fcn.004680f0
add esp, 4
jmp 0x40eba0
push 0x5f69
jmp 0x40eb9b
push 0x5f7a
jmp 0x40eb9b
push 0x525c
call fcn.004680f0
jmp 0x40eaf0
mov ecx, dword [esp + 0x10]
xor eax, eax
mov ax, word [ecx + 0x10b]
mov ebx, dword [ecx + 0x111]
test eax, eax
jle 0x40e9ce
push eax
push 0x52a0
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._s:_d
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push ebx
push 0x529f
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0xc
jmp 0x40edfa
push 0x534e
jmp 0x40eb9b
push 0x534f
jmp 0x40eb9b
push 0x5355
jmp 0x40eb9b
push 0x5363
jmp 0x40eb9b
push 0x537f
jmp 0x40ea2e
push 0x5380
call fcn.004680f0
push eax
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov ecx, dword [esp + 0x1c]
xor eax, eax
add esp, 0xc
mov ax, word [ecx + 0x10b]
cmp eax, 2
jne 0x40ea76
mov eax, 0x50
push eax
push 0x5396
call fcn.004680f0
add esp, 4
jmp 0x40eba0
cmp eax, 3
jne 0x40edd0
mov eax, 0x5a
push eax
push 0x5396
call fcn.004680f0
add esp, 4
jmp 0x40eba0
mov edx, dword [esp + 0x10]
xor eax, eax
mov ax, word [edx + 0x10b]
push eax
push 0x5389
call fcn.004680f0
add esp, 4
jmp 0x40eba0
mov ecx, dword [esp + 0x10]
xor eax, eax
mov ax, word [ecx + 0x10b]
push eax
call fcn.00461550
add esp, 4
xor ecx, ecx
test eax, eax
je 0x40ead9
mov ecx, dword [eax + 0x700]
push ecx
call fcn.004680f0
add esp, 4
push eax
push 0x53ca
call fcn.004680f0
add esp, 4
push eax
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0xc
test ebx, ebx
je 0x40edd0
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
push 0x5e74
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
push 0x5e75
push ebx
call fcn.00427d20
add esp, 0x10
jmp 0x40edd0
test dword [esp + 0x28], 0x18000
je 0x40ebbe
push 0x5ecc
call fcn.004680f0
push eax
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0xc
jmp 0x40edd0
mov ebx, dword [esp + 0x20]
push ebx
mov dword [esp + 0x40], ebx
call fcn.0046c150
mov ecx, dword [esp + 0x14]
add esp, 4
push eax
xor eax, eax
mov ax, word [ecx + 0x10b]
push eax
push 0x5e90
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
or ecx, 0xffffffff
mov edi, 0x573270
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x5731f8
mov dword [esp + 0x30], ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea esi, [ecx + ebp]
mov ecx, dword [esp + 0x24]
push esi
mov ax, word [ecx + 0x10b]
push eax
push ebx
push 0
push 0
push 0
call fcn.00411dd0
add esp, 0x2c
cmp byte [esi], 0
je 0x40ecbd
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x40ecc5
mov eax, dword [esp + 0x1c]
mov byte [eax + ebp], 0
cmp ebx, 0x13
jne 0x40edfa
cmp byte [ebp], 0
je 0x40ecfe
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x2c]
mov edi, 0x573270
test eax, eax
jne 0x40ed10
mov edi, 0x573238
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x10]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ax, word [eax + 0x11b]
test ax, ax
je 0x40ed4c
and eax, 0xffff
jmp 0x40ed59
mov ecx, dword [esp + 0x24]
xor eax, eax
mov ax, word [ecx + 0x8ed]
test eax, eax
jne 0x40ed87
push 0x5ec1
call fcn.004680f0
push eax
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._s:____
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0x10
jmp 0x40edd0
push eax
call fcn.0046db80
push eax
call fcn.004680f0
add esp, 8
push eax
push 0x5eb4
call fcn.004680f0
add esp, 4
push eax
push 0x4f1d
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._s_s:__s
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0x14
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ebx, dword [esp + 0x28]
test ebx, 0xc0000000
jne 0x40ee14
test dword [esp + 0x38], 0x20000000
je 0x40eed9
cmp byte [ebp], 0
je 0x40ee44
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x573274
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
test ebx, 0x80000000
rep movsb byte es:[edi], byte [esi]
je 0x40ee7e
push ebp
push 0x5dd5
jmp 0x40ee8e
test dword [esp + 0x38], 0x20000000
je 0x40ee98
push ebp
push 0x5f19
push 0
call fcn.004084e0
add esp, 0xc
test ebx, 0x40000000
je 0x40eeaf
push ebp
push 0x5dd6
push eax
call fcn.004084e0
add esp, 0xc
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test ebx, 0x1fdf
je 0x41070d
cmp byte [ebp], 0
je 0x40ef15
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1cc]
xor eax, eax
mov al, byte [ecx + 0x46]
mov esi, eax
sar eax, 4
and eax, 0xf
cmp eax, 4
mov dword [esp + 0x1c], eax
jle 0x40ef39
sub eax, 0x10
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dl, byte [ecx + 0xfc]
add edx, eax
test edx, edx
jle 0x40f01d
and esi, 0xf
mov ecx, edx
sub ecx, esi
mov dword [esp + 0x20], ecx
jns 0x40ef66
mov dword [esp + 0x20], 0
jmp 0x40ef6a
test ecx, ecx
jne 0x40ef9c
mov edi, 0x573274
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x1c]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x20]
push edx
push ecx
test eax, eax
push 0x5eb8
jle 0x40efb7
call fcn.004680f0
add esp, 4
push eax
push str._s:__d__3_d_1
jmp 0x40efd7
jge 0x40efc9
call fcn.004680f0
add esp, 4
push eax
push str._s:__d__2_d_1
jmp 0x40efd7
call fcn.004680f0
add esp, 4
push eax
push str._s:__d__1_d
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
mov ebx, dword [0x56c1a4]
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call ebx
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x40f023
mov ebx, dword [0x56c1a4]
test dword [esp + 0x28], 0x4001000
jne 0x40f237
mov esi, dword [esp + 0x1cc]
lea eax, [esp + 0x14]
push eax
push esi
call fcn.0046aeb0
push esi
mov edi, eax
call fcn.0046af30
add esp, 0xc
mov esi, eax
mov dword [esp + 0x1c], 0
call fcn.004352f0
mov ecx, dword [esp + 0x1cc]
cmp dword [ecx + 0x23], eax
jne 0x40f071
mov dword [esp + 0x1c], 1
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x40f0dd
mov eax, dword [esp + 0x1c]
test esi, esi
jne 0x40f0b2
push edi
push esi
test eax, eax
push 0x5ec6
je 0x40f09f
call fcn.004680f0
add esp, 4
push eax
push str._3_s:_2__d_1__d
jmp 0x40f139
call fcn.004680f0
add esp, 4
push eax
push str._2_s:__d_1__d
jmp 0x40f139
push edi
push esi
test eax, eax
push 0x5ec6
je 0x40f0cd
call fcn.004680f0
add esp, 4
push eax
push str._3_s:_1__d__d
jmp 0x40f139
call fcn.004680f0
add esp, 4
push eax
push str._s:__d__d
jmp 0x40f139
mov eax, dword [esp + 0x1c]
test esi, esi
jne 0x40f110
push edi
push esi
test eax, eax
push 0x5ec6
je 0x40f100
call fcn.004680f0
add esp, 4
push eax
push str._3_s:_2__d_1__2_d_1
jmp 0x40f139
call fcn.004680f0
add esp, 4
push eax
push str._2_s:__d_1__2_d_1
jmp 0x40f139
push edi
push esi
test eax, eax
push 0x5ec6
je 0x40f12b
call fcn.004680f0
add esp, 4
push eax
push str._3_s:_1__d__2_d_1
jmp 0x40f139
call fcn.004680f0
add esp, 4
push eax
push str._s:__d__2_d_1
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call ebx
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x10]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp word [eax + 0x29b], 0
je 0x40f237
mov edi, 0x57323c
or ecx, 0xffffffff
xor eax, eax
push 0x5f89
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
or ecx, 0xffffffff
mov edi, ebp
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5731f8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x573270
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x28]
test eax, 0x1001
je 0x40f469
push 0x5ddb
mov dword [esp + 0x18], 1
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x10]
mov ecx, edx
mov edx, dword [esp + 0x1cc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 0xc4]
movsx ebx, byte [edx + 0x44]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x64]
add ebx, ecx
test ebx, ebx
jle 0x40f2ac
mov edi, 0x5732fc
jmp 0x40f2b3
jge 0x40f2d8
mov edi, 0x573274
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
movsx eax, word [esp + 0x20]
movsx ecx, word [esp + 0x22]
add eax, ebx
add ecx, ebx
push eax
push ecx
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
push str.__d_d
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0x10
test ebx, ebx
je 0x40f333
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x28]
test ah, 0x10
jne 0x40f641
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
push 0x5dd8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
mov edi, ebp
mov esi, dword [0x56c1a4]
mov al, byte [ecx + 0x68]
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x57325c
add ecx, ebp
push ecx
call esi
mov eax, dword [esp + 0x34]
xor edx, edx
add esp, 0x10
movsx ecx, word [eax + 0x4a0]
mov dx, word [eax + 0x494]
mov eax, 0x10624dd3
add ecx, edx
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 1
jle 0x40f3f5
mov edx, 1
jmp 0x40f3f9
test edx, edx
jle 0x40f413
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
push edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x5732ec
add ecx, ebp
push ecx
call esi
add esp, 0xc
mov ecx, dword [esp + 0x1cc]
push ecx
call fcn.0040a590
mov ecx, eax
add esp, 4
test ecx, ecx
jle 0x40f641
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
test edx, edx
jle 0x40f641
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
push edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._E__d__1
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0xc
jmp 0x40f641
test ah, 8
je 0x40f554
mov ecx, dword [esp + 0x1cc]
mov edx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x14], 2
movsx ebx, byte [ecx + 0x44]
mov ax, word [edx + 0xca]
add eax, ebx
mov dword [esp + 0x20], eax
je 0x40f641
push 0x5dde
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
test ebx, ebx
rep movsb byte es:[edi], byte [esi]
jle 0x40f4dd
mov edi, 0x5732fc
jmp 0x40f4e4
jge 0x40f509
mov edi, 0x573274
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x20]
push 0
push 0
push ebp
push 0
push eax
call fcn.004086b0
mov edi, 0x5731d4
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
test ebx, ebx
rep movsb byte es:[edi], byte [esi]
je 0x40f641
jmp 0x40f617
mov eax, dword [esp + 0x1cc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x14], 4
movsx ebx, byte [eax + 0x44]
xor eax, eax
add ebx, edx
mov ax, word [ecx + 0xcc]
add eax, ebx
mov dword [esp + 0x20], eax
je 0x40f641
push 0x5ddd
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
test ebx, ebx
rep movsb byte es:[edi], byte [esi]
jle 0x40f5c5
mov edi, 0x5732fc
jmp 0x40f5cc
jge 0x40f5f1
mov edi, 0x573274
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x20]
mov edi, ebp
push eax
or ecx, 0xffffffff
xor eax, eax
push 0x5732dc
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0xc
test ebx, ebx
je 0x40f641
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x573248
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov al, byte [esp + 0x14]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x10]
test al, 1
jne 0x40f69d
mov eax, dword [esi + 0xc4]
test eax, eax
je 0x40f69d
push 0
push 1
push ebp
push 0x5ddb
push eax
call fcn.004089e0
add esp, 4
push eax
call fcn.004086b0
add esp, 0x14
test byte [esp + 0x14], 4
jne 0x40f6c4
xor eax, eax
mov ax, word [esi + 0xcc]
test eax, eax
je 0x40f6c4
push 0
push 1
push ebp
push 0x5ddd
push eax
call fcn.004086b0
add esp, 0x14
test byte [esp + 0x14], 2
jne 0x40f6eb
xor eax, eax
mov ax, word [esi + 0xca]
test eax, eax
je 0x40f6eb
push 0
push 1
push ebp
push 0x5dde
push eax
call fcn.004086b0
add esp, 0x14
movsx eax, word [esi + 0xe0]
test eax, eax
je 0x40f70d
lea eax, [eax + eax*4]
push 1
push ebp
push 0x3c
lea eax, [eax + eax*4]
shl eax, 2
push eax
call fcn.00408560
add esp, 0x10
xor eax, eax
mov ax, word [esi + 0xc2]
test eax, eax
je 0x40f72d
push 0
push 1
push ebp
push 0x5dd9
push eax
call fcn.004086b0
add esp, 0x14
mov eax, dword [esi + 0xba]
test eax, eax
je 0x40f74a
push 0
push 1
push ebp
push 0x5dda
push eax
call fcn.004086b0
add esp, 0x14
mov ecx, dword [esp + 0x68]
xor eax, eax
mov ax, word [esi + 0xd4]
add eax, ecx
je 0x40f76e
push 0
push 1
push ebp
push 0x5dc6
push eax
call fcn.004086b0
add esp, 0x14
mov ecx, dword [esp + 0x6c]
xor eax, eax
mov ax, word [esi + 0xd6]
add eax, ecx
je 0x40f792
push 0
push 1
push ebp
push 0x5dc7
push eax
call fcn.004086b0
add esp, 0x14
mov ecx, dword [esp + 0x70]
xor eax, eax
mov ax, word [esi + 0xd8]
add eax, ecx
je 0x40f7b6
push 0
push 1
push ebp
push 0x5dc8
push eax
call fcn.004086b0
add esp, 0x14
mov ecx, dword [esp + 0x74]
xor eax, eax
mov ax, word [esi + 0xda]
add eax, ecx
je 0x40f7da
push 0
push 1
push ebp
push 0x5dc9
push eax
call fcn.004086b0
add esp, 0x14
mov ecx, dword [esp + 0x78]
xor eax, eax
mov ax, word [esi + 0xdc]
add eax, ecx
je 0x40f7fe
push 0
push 1
push ebp
push 0x5dca
push eax
call fcn.004086b0
add esp, 0x14
mov ecx, dword [esp + 0x7c]
xor eax, eax
mov ax, word [esi + 0xde]
add eax, ecx
je 0x40f822
push 0
push 1
push ebp
push 0x5dcb
push eax
call fcn.004086b0
add esp, 0x14
test dword [esp + 0x28], 0x1101
je 0x40f929
mov ecx, dword [esp + 0x1cc]
mov al, byte [ecx + 0x45]
test al, al
je 0x40f929
mov ecx, dword [esp + 0x10]
xor edx, edx
and eax, 0xff
mov dx, word [ecx + 0xce]
mov ecx, dword [esp + 0xfc]
add ecx, edx
add eax, ecx
mov ebx, eax
je 0x40f950
cmp byte [ebp], 0
je 0x40f897
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5de1
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
push ebp
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5732fc
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004086b0
mov edi, 0x573248
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x40f950
mov ecx, dword [esp + 0xfc]
xor eax, eax
mov ax, word [esi + 0xce]
add eax, ecx
je 0x40f950
push 0
push 1
push ebp
push 0x5de1
push eax
call fcn.004086b0
add esp, 0x14
mov eax, dword [esp + 0x1cc]
mov al, byte [eax + 0x48]
test al, al
jne 0x40f98e
mov ecx, dword [esp + 0x10]
xor eax, eax
mov ax, word [ecx + 0xc8]
test eax, eax
je 0x40fa86
push 0
push 0x80000001
push ebp
push 0x5ddc
push eax
call fcn.004086b0
add esp, 0x14
jmp 0x40fa86
mov edx, dword [esp + 0x10]
movsx ebx, al
xor eax, eax
mov ax, word [edx + 0xc8]
add eax, ebx
mov dword [esp + 0x20], eax
je 0x40fa86
cmp byte [ebp], 0
je 0x40f9da
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5ddc
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
test ebx, ebx
rep movsb byte es:[edi], byte [esi]
jle 0x40fa19
mov edi, 0x5732fc
jmp 0x40fa20
jge 0x40fa45
mov edi, 0x573274
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x20]
push 0
push 0x80000000
push ebp
push 0
push eax
call fcn.004086b0
mov edi, 0x573248
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc8]
xor eax, eax
mov ax, word [ecx + 0xd0]
add eax, edx
je 0x40fab5
push 0
push 1
push ebp
push 0x5ddf
push eax
call fcn.004086b0
mov ecx, dword [esp + 0x24]
add esp, 0x14
test byte [esp + 0x28], 6
je 0x40fbb5
mov eax, dword [esp + 0x1cc]
mov al, byte [eax + 0x45]
test al, al
je 0x40fbb5
xor edx, edx
and eax, 0xff
mov dx, word [ecx + 0xd2]
mov ecx, dword [esp + 0xcc]
add ecx, edx
add eax, ecx
mov ebx, eax
je 0x40fbdc
cmp byte [ebp], 0
je 0x40fb23
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5de0
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
push ebp
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5732fc
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004086b0
mov edi, 0x573248
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x40fbdc
xor eax, eax
mov ax, word [ecx + 0xd2]
mov ecx, dword [esp + 0xcc]
add eax, ecx
je 0x40fbdc
push 0
push 1
push ebp
push 0x5de0
push eax
call fcn.004086b0
add esp, 0x14
mov dword [esp + 0x18], 0
mov ebx, 1
mov ecx, dword [esp + 0x10]
xor eax, eax
mov al, byte [ecx + ebx + 0xeb]
mov edx, eax
mov eax, dword [esp + ebx*4 + 0x80]
add eax, edx
mov dword [esp + 0x1c], eax
je 0x40fce7
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x40fc47
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x18], 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x40fc71
mov edi, 0x5731d0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5dea
call fcn.004680f0
add esp, 4
push eax
lea eax, [ebx + 0x5de1]
push eax
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x573240
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov ecx, dword [esp + 0x2c]
push 0
push 0
push ebp
push 0
push ecx
call fcn.004086b0
mov edi, 0x5731d4
or ecx, 0xffffffff
xor eax, eax
add esp, 0x24
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
inc ebx
cmp ebx, 8
jle 0x40fbe9
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 0
mov ebx, 1
movsx edx, byte [eax + ebx + 0xe2]
mov ecx, dword [esp + ebx*4 + 0xa4]
add ecx, edx
mov dword [esp + 0x1c], ecx
je 0x40fdfd
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x40fd59
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x18], 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x40fd83
mov edi, 0x5731d0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5deb
call fcn.004680f0
add esp, 4
push eax
lea eax, [ebx + 0x5de1]
push eax
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x573240
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov ecx, dword [esp + 0x2c]
push 0
push 0
push ebp
push 0
push ecx
call fcn.004086b0
mov edi, 0x5731d4
or ecx, 0xffffffff
xor eax, eax
add esp, 0x24
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x10]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
inc ebx
cmp ebx, 8
jle 0x40fd02
mov ecx, dword [esp + 0xe4]
xor ebx, ebx
mov bl, byte [eax + 0xfa]
add ebx, ecx
je 0x40fe94
cmp byte [ebp], 0
je 0x40fe4a
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5deb
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push 0x80000000
and ecx, 3
push ebp
push 0x5df1
push ebx
rep movsb byte es:[edi], byte [esi]
call fcn.004086b0
mov eax, dword [esp + 0x28]
add esp, 0x18
mov ecx, dword [esp + 0xe8]
xor ebx, ebx
mov bl, byte [eax + 0xf6]
add ebx, ecx
je 0x40ff21
cmp byte [ebp], 0
je 0x40fed7
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5deb
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push 0x80000000
and ecx, 3
push ebp
push 0x5df2
push ebx
rep movsb byte es:[edi], byte [esi]
call fcn.004086b0
mov eax, dword [esp + 0x28]
add esp, 0x18
mov ecx, dword [esp + 0xec]
xor ebx, ebx
mov bl, byte [eax + 0xf9]
add ebx, ecx
je 0x40ffae
cmp byte [ebp], 0
je 0x40ff64
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5deb
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push 0x80000000
and ecx, 3
push ebp
push 0x5df3
push ebx
rep movsb byte es:[edi], byte [esi]
call fcn.004086b0
mov eax, dword [esp + 0x28]
add esp, 0x18
mov ecx, dword [esp + 0xf0]
xor ebx, ebx
mov bl, byte [eax + 0xfb]
add ebx, ecx
je 0x41003b
cmp byte [ebp], 0
je 0x40fff1
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5deb
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push 0x80000000
and ecx, 3
push ebp
push 0x5df4
push ebx
rep movsb byte es:[edi], byte [esi]
call fcn.004086b0
mov eax, dword [esp + 0x28]
add esp, 0x18
mov ecx, dword [esp + 0xf4]
xor ebx, ebx
mov bl, byte [eax + 0xf7]
add ebx, ecx
je 0x4100c8
cmp byte [ebp], 0
je 0x41007e
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5deb
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push 0x80000000
and ecx, 3
push ebp
push 0x5df5
push ebx
rep movsb byte es:[edi], byte [esi]
call fcn.004086b0
mov eax, dword [esp + 0x28]
add esp, 0x18
mov ecx, dword [esp + 0xf8]
xor ebx, ebx
mov bl, byte [eax + 0xf8]
add ebx, ecx
je 0x410155
cmp byte [ebp], 0
je 0x41010b
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5deb
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push 0x80000000
and ecx, 3
push ebp
push 0x5df6
push ebx
rep movsb byte es:[edi], byte [esi]
call fcn.004086b0
mov eax, dword [esp + 0x28]
add esp, 0x18
xor ecx, ecx
mov cl, byte [eax + 0x296]
test ecx, ecx
mov dword [esp + 0x1c], ecx
je 0x4101ce
xor edx, edx
mov dl, byte [eax + 0x295]
mov al, byte [ebp]
test al, al
je 0x4101a2
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
push ecx
push edx
push 0x5f57
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov eax, dword [esp + 0x20]
add esp, 0x10
xor ecx, ecx
mov cl, byte [eax + 0x298]
test ecx, ecx
mov dword [esp + 0x1c], ecx
je 0x410247
xor edx, edx
mov dl, byte [eax + 0x297]
mov al, byte [ebp]
test al, al
je 0x41021b
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
push ecx
push edx
push 0x5f58
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov eax, dword [esp + 0x20]
add esp, 0x10
xor ecx, ecx
mov cl, byte [eax + 0x29a]
test ecx, ecx
mov dword [esp + 0x1c], ecx
je 0x4102c0
xor edx, edx
mov dl, byte [eax + 0x299]
mov al, byte [ebp]
test al, al
je 0x410294
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
push ecx
push edx
push 0x5f59
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov eax, dword [esp + 0x20]
add esp, 0x10
mov cl, byte [eax + 0x294]
test cl, cl
je 0x410326
cmp byte [ebp], 0
je 0x4102fa
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x533d
call fcn.004680f0
push eax
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._8_s
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov eax, dword [esp + 0x20]
add esp, 0x10
cmp word [eax + 0xf4], 0
je 0x41035a
mov edi, 0x57323c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x41036c
test dword [esp + 0x38], 0x1000000
je 0x41038c
mov eax, dword [esp + 0x1d4]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1cc]
push eax
push ebp
push ebx
push ecx
call fcn.0040c3c0
add esp, 0x10
jmp 0x410390
mov ebx, dword [esp + 0x10]
push 0
push 0
push 0
lea edx, [ebx + 0x125]
push 0
push edx
push ebp
call fcn.00408a00
mov edi, 0x5732d0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x2c]
mov ecx, edx
mov edx, dword [esp + 0x1e4]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor ecx, ecx
push eax
mov cx, word [ebx + 0xa8]
add edx, 0x28
push ecx
push 6
lea eax, [esp + 0x88]
push edx
push eax
push ebp
call fcn.0040af00
add esp, 0x30
test eax, eax
je 0x410408
or dword [esp + 0x14], 0x80000000
mov edi, 0x573238
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov al, byte [esp + 0x1d4]
mov ecx, edx
and ecx, 3
test al, 1
rep movsb byte es:[edi], byte [esi]
je 0x41049f
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x41049f
test byte [esp + 0x14], 4
je 0x41049f
mov eax, dword [esp + 0x24]
xor edx, edx
mov dl, byte [eax + 0x8fc]
test edx, edx
je 0x41049f
cmp byte [ebp], 0
je 0x41048c
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0
push 1
push ebp
push 0x5f2b
push edx
call fcn.004086b0
add esp, 0x14
mov ebx, dword [esp + 0x1cc]
test byte [ebx + 2], 0x40
je 0x410510
cmp byte [ebp], 0
je 0x4104dc
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5355
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test byte [ebx + 2], 0x80
je 0x41057a
cmp byte [ebp], 0
je 0x410546
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5359
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x40]
test eax, eax
je 0x4106bd
cmp eax, 0xffffffff
jne 0x4105f3
cmp byte [ebp], 0
je 0x4105ba
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x534c
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4106bd
push 0
call fcn.00529c81
mov ecx, dword [ebx + 0x40]
add esp, 4
cmp ecx, eax
jle 0x4106b6
push ecx
call fcn.00427e40
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4106bd
cmp byte [ebp], 0
je 0x41064b
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x534d
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
push eax
mov eax, dword [ebx + 0x10]
push ecx
mov ecx, dword [ebx + 0x14]
inc eax
push edx
add ecx, 0x76c
push eax
push ecx
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
push str.:_04d__02d__02d__02d:_02d
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0x20
jmp 0x4106bd
mov dword [ebx + 0x40], 0
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x24]
mov ecx, edx
mov edx, dword [esp + 0x1d4]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
push eax
push ebp
push ecx
push edx
call fcn.0040beb0
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1b8
ret
mov ecx, dword [esp + 0x1cc]
xor eax, eax
mov ax, word [ecx]
sub eax, 0x1cf5
je 0x41072e
sub eax, 0x61
je 0x41072e
sub eax, 0x4a
jne 0x4107bc
cmp byte [ebp], 0
je 0x41075e
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x573238
or ecx, 0xffffffff
xor eax, eax
push 0x5ecc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004680f0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, ebx
mov edi, 0x573270
and eax, 0x200000
mov dword [esp + 0x2c], eax
jne 0x4107d3
mov edi, 0x573238
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + 0x125]
lea eax, [esi + 0x125]
test ecx, 0x20000000
mov dword [esp + 0x28], eax
jne 0x410bcf
mov ax, word [esi + 0xc2]
test ax, ax
je 0x41083f
push 0
lea ecx, [ebp + 2]
push 1
push ecx
and eax, 0xffff
push 0x5dd9
push eax
call fcn.004086b0
add esp, 0x14
mov eax, dword [esi + 0xba]
test eax, eax
je 0x4108eb
xor ebx, ebx
test eax, eax
jge 0x410890
mov edx, dword [esp + 0x24]
neg eax
cmp dword [edx + 0x3a2], eax
jae 0x410890
mov edi, 0x573274
or ecx, 0xffffffff
xor eax, eax
mov ebx, 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
push 0
lea eax, [ebp + 2]
push 1
mov edx, dword [ecx + 0xba]
push eax
push 0x5dda
push edx
call fcn.004086b0
add esp, 0x14
test ebx, ebx
je 0x4108eb
mov eax, dword [esp + 0x2c]
mov edi, 0x573270
test eax, eax
jne 0x4108c6
mov edi, 0x573238
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0xbe]
test ebx, ebx
je 0x410ae7
mov al, byte [ebp]
mov dword [esp + 0x1c], 0
jge 0x410a60
test al, al
je 0x41093c
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x24]
xor eax, eax
neg ebx
mov ax, word [ecx + 0x3bc]
cmp eax, ebx
jge 0x410957
mov dword [esp + 0x1c], 1
mov eax, ebx
mov ecx, 0x64
cdq
idiv ecx
mov eax, 0x51eb851f
mov ecx, edx
imul ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x66666667
mov ebx, edx
imul ecx
mov eax, dword [esp + 0x1c]
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
test eax, eax
mov dword [esp + 0x18], edx
je 0x4109bd
mov edi, 0x573274
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
push eax
push ebx
push 0x4e41
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._s___d._02d
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov eax, dword [esp + 0x30]
add esp, 0x14
test eax, eax
je 0x410ae7
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x410a31
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x410ae7
mov edi, 0x573238
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x410ae7
test al, al
je 0x410a8e
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, ebx
mov ecx, 0x64
cdq
idiv ecx
mov eax, 0x66666667
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
push edx
imul ebx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
push edx
push 0x4e41
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str._s__d._02d
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0x14
mov ecx, dword [esp + 0x10]
mov al, byte [ecx + 0xfe]
test al, al
je 0x410b14
push 0
lea edx, [ebp + 2]
push 1
push edx
and eax, 0xff
push 0x5ec5
push eax
call fcn.004086b0
mov ecx, dword [esp + 0x24]
add esp, 0x14
mov al, byte [ecx + 0x100]
test al, al
je 0x410b62
cmp byte [ebp], 0
je 0x410b4e
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
xor eax, eax
mov al, byte [ecx + 0x100]
push eax
push 0x535b
jmp 0x410bae
mov al, byte [ecx + 0xff]
test al, al
je 0x410bcf
cmp byte [ebp], 0
je 0x410b9c
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
xor eax, eax
mov al, byte [ecx + 0xff]
push eax
push 0x525b
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
add esp, 0xc
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x410ccd
mov eax, dword [esp + 0x10]
mov cl, byte [eax + 0x29d]
test cl, cl
je 0x410ccd
mov edx, dword [eax + 0x29e]
test edx, edx
je 0x410ccd
cmp byte [ebp], 0
je 0x410c2b
mov edi, 0x5731f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x148]
push eax
mov eax, 0x10624dd3
mul edx
shr edx, 6
push 0x5e75
push edx
call fcn.00427d20
mov edi, 0x573238
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x148]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
push 0x5395
call fcn.004680f0
add esp, 4
mov edi, ebp
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
push ecx
call dword [0x56c1a4]
mov edi, 0x573298
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x410cdf
test dword [esp + 0x38], 0x1000000
je 0x410cfd
mov eax, dword [esp + 0x1d4]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1cc]
push eax
push ebp
push ecx
push edx
call fcn.0040c3c0
add esp, 0x10
mov al, byte [ebp]
push 0
push 0
cmp al, 0x40
push 0
push 1
jne 0x410d17
mov eax, dword [esp + 0x38]
lea ecx, [ebp + 2]
push eax
push ecx
jmp 0x410d1d
mov edx, dword [esp + 0x38]
push edx
push ebp
call fcn.00408a00
mov edi, 0x573270
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1b8
ret