Function at 0x56d1ec
Capabilities:
Authenticate hmac
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffde0
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x18], eax
xor edx, edx
mov dword [ebp - 0x1c], edx
xor ecx, ecx
mov dword [ebp - 0x20], ecx
xor ecx, ecx
mov eax, dword [ebp - 4]
mov edx, dword [eax]
xor eax, eax
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x50], eax
xor eax, eax
mov edx, dword [ebp - 8]
mov esi, dword [edx]
xor edx, edx
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x64], edx
mov ecx, dword [ebp - 0xc]
xor edx, edx
mov eax, dword [ecx]
xor ecx, ecx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x74], ecx
xor eax, eax
mov dword [ebp - 0x78], eax
test byte [ebp - 0x47], 8
setne dl
and edx, 1
mov dword [ebp - 0x80], edx
mov edx, 0xfffffffe
test byte [ebp - 0x47], 2
setne cl
and ecx, 1
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
xor eax, 1
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
test byte [ebp - 0x48], 1
je 0x56c7ea
mov eax, pe_nt_image_headers32
jmp 0x56c7ec
xor eax, eax
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp + 8]
test eax, eax
movzx edi, byte [edx]
je 0x56c899
mov edx, dword [ebx + 0x10]
add edx, 0x1000
cmp esi, edx
jbe 0x56c81b
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x34
jmp 0x57065c
mov eax, dword [ebp - 0x54]
cmp esi, eax
jae 0x56c825
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp + 8]
mov edx, 0x7fffffeb
mov ecx, dword [eax]
mov eax, esi
sub edx, ecx
mov ecx, dword [ebp - 0x54]
sub eax, ecx
cmp edx, eax
jge 0x56c84a
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x14
jmp 0x57065c
mov eax, esi
mov edx, dword [ebp - 0x54]
sub eax, edx
mov ecx, dword [ebp + 8]
add dword [ecx], eax
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x56c891
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x58]
cmp edx, ecx
jbe 0x56c894
mov eax, esi
mov edx, dword [ebp - 0x70]
sub eax, edx
push eax
mov ecx, dword [ebp - 0x70]
push ecx
mov eax, dword [ebp - 0x58]
push eax
call sub.MSVCRT.DLL_memmove
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x58]
sub edx, ecx
add esp, 0xc
mov eax, dword [ebp - 0x58]
sub esi, edx
mov dword [ebp - 0x70], eax
jmp 0x56c894
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x54], esi
jmp 0x56c8b6
mov eax, dword [ebx + 0x10]
add eax, 0x1000
mov edx, dword [ebx + 0x20]
cmp eax, edx
jae 0x56c8b6
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x34
jmp 0x57065c
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x56c91e
test edi, edi
je 0x56c91e
cmp edi, 0x5c
jne 0x56c8de
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x45
jne 0x56c8de
xor eax, eax
mov dword [ebp - 0x60], eax
inc dword [ebp - 0x68]
jmp 0x570654
mov edx, dword [ebp - 0x74]
test edx, edx
je 0x56c8fe
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x56c8f9
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
call fcn.0056bbb8
xor eax, eax
mov dword [ebp - 0x74], eax
test byte [ebp - 0x47], 0x40
je 0x57051d
mov dword [ebp - 0x74], esi
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, esi
call fcn.0056bb8c
mov esi, eax
jmp 0x57051d
cmp edi, 0x2a
je 0x56c943
cmp edi, 0x2b
je 0x56c943
cmp edi, 0x3f
je 0x56c943
cmp edi, 0x7b
jne 0x56c93f
mov eax, dword [ebp - 0x68]
inc eax
call fcn.0056ada4
test eax, eax
jne 0x56c943
xor edx, edx
jmp 0x56c948
mov edx, 1
mov dword [ebp - 0xa0], edx
mov ecx, dword [ebp - 0xa0]
test ecx, ecx
jne 0x56c983
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x56c983
mov edx, dword [ebp - 0x4c]
add dword [ebp - 0x4c], 0xffffffff
test edx, edx
jg 0x56c983
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x56c97e
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
call fcn.0056bbb8
xor eax, eax
mov dword [ebp - 0x74], eax
test byte [ebp - 0x48], 8
je 0x56ca3e
mov edx, dword [ebx + 0xc]
test byte [edx + edi], 1
jne 0x570654
cmp edi, 0x23
jne 0x56ca3e
jmp 0x56ca1f
mov ecx, dword [ebx + 0x50]
test ecx, ecx
je 0x56c9db
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebp - 0x68]
cmp eax, edx
jbe 0x56c9d0
lea ecx, [ebx + 0x54]
push ecx
mov eax, dword [ebp - 0x80]
push eax
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x50]
mov eax, dword [ebp - 0x68]
call fcn.0057b1dc
test eax, eax
jne 0x56c9d4
xor edx, edx
jmp 0x56ca12
mov edx, 1
jmp 0x56ca12
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x54]
sub ecx, eax
mov edx, dword [ebp - 0x68]
cmp ecx, edx
jb 0x56ca09
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
mov dl, byte [ebx + 0x58]
cmp al, dl
jne 0x56ca09
mov ecx, dword [ebx + 0x54]
dec ecx
je 0x56ca0d
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
mov cl, byte [ebx + 0x59]
cmp dl, cl
je 0x56ca0d
xor edx, edx
jmp 0x56ca12
mov edx, 1
test edx, edx
je 0x56ca1f
mov eax, dword [ebx + 0x54]
dec eax
add dword [ebp - 0x68], eax
jmp 0x56ca2f
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
test al, al
jne 0x56c9a5
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
test cl, cl
jne 0x570654
xor edi, edi
test byte [ebp - 0x47], 0x40
je 0x56ca5f
mov eax, dword [ebp - 0xa0]
test eax, eax
jne 0x56ca5f
mov dword [ebp - 0x74], esi
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, esi
call fcn.0056bb8c
mov esi, eax
mov edx, edi
cmp edx, 0x3f
jg 0x56caad
je 0x56e18c
cmp edx, 0x29
jg 0x56ca8f
je 0x56cae5
sub edx, 1
jb 0x56cae5
sub edx, 0x23
je 0x56cb65
sub edx, 4
je 0x56eeb0
jmp 0x57051d
sub edx, 0x2a
je 0x56e16e
dec edx
je 0x56e17c
sub edx, 3
je 0x56cb73
jmp 0x57051d
cmp edx, 0x5e
jg 0x56cad4
je 0x56cb42
sub edx, 0x5b
je 0x56cbbd
dec edx
je 0x5701a6
dec edx
je 0x56cba5
jmp 0x57051d
sub edx, 0x7b
je 0x56e13b
dec edx
je 0x56cae5
jmp 0x57051d
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x2c]
mov dword [ecx], eax
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x30]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [eax], esi
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x68]
mov dword [edx], ecx
mov eax, dword [ebp + 8]
test eax, eax
je 0x56cb38
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov eax, dword [edx]
mov edx, esi
sub ecx, eax
mov eax, dword [ebp - 0x54]
sub edx, eax
cmp ecx, edx
jge 0x56cb2e
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x14
jmp 0x57065c
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x54]
sub esi, ecx
add dword [eax], esi
mov eax, 1
jmp 0x570666
test byte [ebp - 0x48], 2
je 0x56cb57
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x56cb57
mov dword [ebp - 0x2c], 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov byte [esi], 0x1a
inc esi
jmp 0x570654
xor eax, eax
mov dword [ebp - 0x70], eax
mov byte [esi], 0x1b
inc esi
jmp 0x570654
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x56cb82
mov dword [ebp - 0x2c], 0xffffffff
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x70], esi
test byte [ebp - 0x48], 4
je 0x56cb9b
mov dl, 0xd
jmp 0x56cb9d
mov dl, 0xc
mov byte [esi], dl
inc esi
jmp 0x570654
test byte [ebx + 0x43], 2
je 0x57051d
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x40
jmp 0x57065c
mov dword [ebp - 0x70], esi
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x3a
je 0x56cbe0
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x2e
je 0x56cbe0
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x3d
jne 0x56cc0f
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.0056ba44
test eax, eax
je 0x56cc0f
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x3a
jne 0x56cc00
mov edx, 0xd
jmp 0x56cc05
mov edx, 0x1f
mov eax, dword [ebp + 0x1c]
mov dword [eax], edx
jmp 0x57065c
xor ecx, ecx
mov dword [ebp - 0x94], ecx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
movzx edi, byte [eax]
cmp edi, 0x5c
jne 0x56cc53
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x45
jne 0x56cc35
inc dword [ebp - 0x68]
jmp 0x56cc17
push 3
push 0x6992ed
mov ecx, dword [ebp - 0x68]
inc ecx
push ecx
call sub.MSVCRT.DLL_strncmp
add esp, 0xc
test eax, eax
jne 0x56cc6e
add dword [ebp - 0x68], 3
jmp 0x56cc17
mov eax, dword [ebp - 0x94]
test eax, eax
jne 0x56cc6e
cmp edi, 0x5e
jne 0x56cc6e
mov dword [ebp - 0x94], 1
jmp 0x56cc17
cmp edi, 0x5d
jne 0x56cca6
test byte [ebx + 0x43], 2
je 0x56cca6
mov edx, dword [ebp - 0x94]
test edx, edx
je 0x56cc87
mov cl, 0xd
jmp 0x56cc89
mov cl, 0x6d
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x56cc9b
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
jmp 0x570654
xor eax, eax
xor edx, edx
mov dword [ebp - 0x98], eax
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xb0], 0xffffffff
push 0x20
lea ecx, [ebp - 0x1fc]
push 0
push ecx
call sub.MSVCRT.DLL_memset
xor eax, eax
lea edx, [esi + 4]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x84], edx
mov ecx, dword [ebp - 0x84]
add esp, 0xc
test edi, edi
mov dword [ebp - 0x88], ecx
je 0x56df28
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x56cdbf
cmp edi, 0x7f
jle 0x56cdbf
mov edx, dword [ebp - 0x68]
movzx edi, byte [edx]
cmp edi, 0xc0
jl 0x56cdbf
mov eax, edi
and eax, 0x3f
xor edx, edx
mov dl, byte [eax + 0x6997c4]
mov dword [ebp - 0xe4], edx
mov ecx, dword [ebp - 0xe4]
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0xe8], ecx
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax*4 + 0x699408]
and edi, edx
shl edi, cl
mov dword [ebp - 0xe0], 1
mov eax, dword [ebp - 0x68]
lea edx, [eax + 1]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xe4]
cmp ecx, eax
jg 0x56cdb6
sub dword [ebp - 0xe8], 6
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x1d8]
xor eax, eax
mov al, byte [edx]
and eax, 0x3f
shl eax, cl
or edi, eax
inc dword [ebp - 0xe0]
inc dword [ebp - 0x1d8]
mov edx, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xe4]
cmp edx, ecx
jle 0x56cd7c
mov eax, dword [ebp - 0xe4]
add dword [ebp - 0x68], eax
mov edx, dword [ebp + 8]
test edx, edx
je 0x56cde5
mov ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x88]
sub ecx, eax
mov edx, dword [ebp + 8]
add dword [edx], ecx
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x84], ecx
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x56ce11
cmp edi, 0x5c
jne 0x56d943
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x45
jne 0x56d943
xor eax, eax
mov dword [ebp - 0x60], eax
inc dword [ebp - 0x68]
jmp 0x56df07
cmp edi, 0x5b
jne 0x56d0b9
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x3a
je 0x56ce3e
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x2e
je 0x56ce3e
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x3d
jne 0x56d0b9
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.0056ba44
test eax, eax
je 0x56d0b9
xor edx, edx
mov dword [ebp - 0xec], edx
mov ecx, dword [ebx + 8]
mov dword [ebp - 0xfc], ecx
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x3a
je 0x56ce7b
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x1f
jmp 0x57065c
add dword [ebp - 0x68], 2
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x5e
jne 0x56cea0
mov dword [ebp - 0xec], 1
mov dword [ebp - 0x98], 1
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
sub edx, eax
mov eax, dword [ebp - 0x68]
call fcn.0056ba88
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
test edx, edx
jge 0x56cece
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x1e
jmp 0x57065c
test byte [ebp - 0x48], 1
je 0x56cee7
mov eax, dword [ebp - 0xf0]
cmp eax, 2
jg 0x56cee7
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0xf0], ecx
push 0x20
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax*4 + 0x698794]
mov ecx, dword [ebp - 0xfc]
add edx, ecx
push edx
lea eax, [ebp - 0x21c]
push eax
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
mov edx, dword [ebp - 0xf0]
mov ecx, dword [edx*4 + 0x698798]
mov dword [ebp - 0xf4], ecx
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax*4 + 0x69879c]
mov dword [ebp - 0xf8], edx
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
jl 0x56cfe9
mov eax, dword [ebp - 0xf8]
test eax, eax
jl 0x56cfa2
xor edi, edi
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf4]
lea eax, [edx + ecx]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x1d8]
mov eax, dword [ebp - 0x1dc]
inc edi
mov cl, byte [edx]
or byte [eax], cl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x56cf7e
jmp 0x56cfe9
xor edi, edi
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf4]
lea eax, [edx + ecx]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x1dc]
mov eax, dword [ebp - 0x1d8]
inc edi
mov cl, byte [edx]
not cl
and byte [eax], cl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x56cfc5
mov edx, dword [ebp - 0xf8]
test edx, edx
jge 0x56cff9
neg dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xf8]
dec ecx
jne 0x56d00b
and byte [ebp - 0x21b], 0xc3
jmp 0x56d01d
mov eax, dword [ebp - 0xf8]
cmp eax, 2
jne 0x56d01d
and byte [ebp - 0x211], 0x7f
mov edx, dword [ebp - 0xec]
test edx, edx
je 0x56d067
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
lea edx, [ebp - 0x21c]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1dc]
inc edi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x56d041
jmp 0x56d0a3
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
lea edx, [ebp - 0x21c]
mov dword [ebp - 0x1dc], edx
mov ecx, dword [ebp - 0x1dc]
mov edx, dword [ebp - 0x1d8]
inc edi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x56d081
mov ecx, dword [ebp - 0x6c]
inc ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0xac], 0xa
jmp 0x56df07
cmp edi, 0x5c
jne 0x56d943
mov eax, dword [ebp - 0x48]
push eax
push 1
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.0056a8a0
mov edi, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x57065c
mov ecx, edi
neg ecx
cmp ecx, 5
jne 0x56d0f5
mov edi, 8
jmp 0x56d156
mov eax, edi
neg eax
cmp eax, 0x16
jne 0x56d105
mov edi, 0x58
jmp 0x56d156
mov eax, edi
neg eax
cmp eax, 0x11
jne 0x56d115
mov edi, 0x52
jmp 0x56d156
mov eax, edi
neg eax
cmp eax, 0x1a
jne 0x56d149
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x5c
jne 0x56d13d
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 2]
cmp dl, 0x45
jne 0x56d13d
add dword [ebp - 0x68], 2
jmp 0x56df07
mov dword [ebp - 0x60], 1
jmp 0x56df07
mov ecx, edi
neg ecx
cmp ecx, 0x19
je 0x56df07
test edi, edi
jge 0x56d943
mov eax, dword [ebx + 8]
mov dword [ebp - 0x100], eax
add dword [ebp - 0xac], 2
mov edx, dword [ebp + 8]
test edx, edx
jne 0x56d376
mov ecx, edi
neg ecx
add ecx, 0xfffffffa
cmp ecx, 5
ja case.default.0x56d189
jmp dword [ecx*4 + 0x56d190]
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1dc]
inc edi
mov dl, byte [eax]
or byte [ecx], dl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x56d1c5
jmp 0x56df07
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
inc edi
mov dl, byte [eax]
not dl
or byte [ecx], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x56d213
jmp 0x56df07
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1dc]
inc edi
mov dl, byte [eax]
or byte [ecx], dl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x56d25c
jmp 0x56df07
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
inc edi
mov dl, byte [eax]
not dl
or byte [ecx], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x56d2ad
jmp 0x56df07
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
mov ecx, edx
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1dc]
inc edi
mov dl, byte [eax]
or byte [ecx], dl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x56d2f2
and byte [ebp - 0x1fb], 0xf7
jmp 0x56df07
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
mov ecx, edx
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
inc edi
mov dl, byte [eax]
not dl
or byte [ecx], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x56d346
or byte [ebp - 0x1fb], 8
jmp 0x56df07
cmp edi, 0xfffffff9
je 0x56df07
cmp edi, 0xfffffffa
je 0x56df07
cmp edi, 0xfffffff5
je 0x56df07
cmp edi, 0xfffffff6
je 0x56df07
cmp edi, 0xfffffff7
je 0x56df07
cmp edi, 0xfffffff8
je 0x56df07
mov eax, edi
neg eax
cmp eax, 0x13
jne 0x56d4d9
or byte [ebp - 0x1fb], 2
or byte [ebp - 0x1f8], 1
or byte [ebp - 0x1e8], 1
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x56df07
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x84]
mov eax, 0x1680
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x180e
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x2000
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x200a
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x202f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x205f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x3000
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
jmp 0x56df07
mov ecx, edi
neg ecx
cmp ecx, 0x12
jne 0x56d6f6
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x104], 0xff
mov edx, edi
dec edx
je 0x56d50f
sub edx, 3
je 0x56d518
sub edx, 0x10
je 0x56d521
jmp 0x56d528
xor dword [ebp - 0x104], 2
jmp 0x56d528
xor dword [ebp - 0x104], 1
jmp 0x56d528
xor dword [ebp - 0x104], 1
mov cl, byte [ebp - 0x104]
mov eax, dword [ebp - 0x1d8]
or byte [eax], cl
inc edi
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x56d4f4
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x56df07
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x84]
mov eax, pe_nt_image_headers32
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x167f
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x1681
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x180d
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x180f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x1fff
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x200b
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x202e
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x2030
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x205e
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x2060
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x2fff
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x3001
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x7fffffff
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
jmp 0x56df07
mov ecx, edi
neg ecx
cmp ecx, 0x15
jne 0x56d774
or byte [ebp - 0x1fb], 4
or byte [ebp - 0x1fb], 8
or byte [ebp - 0x1fb], 0x10
or byte [ebp - 0x1fb], 0x20
or byte [ebp - 0x1ec], 0x20
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x56df07
mov dword [ebp - 0x7c], 1
mov edx, dword [ebp - 0x84]
mov eax, 0x2028
mov byte [edx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x2029
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
jmp 0x56df07
mov ecx, edi
neg ecx
cmp ecx, 0x14
jne 0x56d871
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x108], 0xff
mov edx, edi
dec edx
je 0x56d7a5
sub edx, 0xf
je 0x56d7c3
jmp 0x56d7ca
xor dword [ebp - 0x108], 4
xor dword [ebp - 0x108], 8
xor dword [ebp - 0x108], 0x10
xor dword [ebp - 0x108], 0x20
jmp 0x56d7ca
xor dword [ebp - 0x108], 0x20
mov cl, byte [ebp - 0x108]
mov eax, dword [ebp - 0x1d8]
or byte [eax], cl
inc edi
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x56d78f
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x56df07
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x84]
mov eax, pe_nt_image_headers32
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x2027
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x2029
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov eax, 0x7fffffff
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
jmp 0x56df07
mov ecx, edi
neg ecx
cmp ecx, 0x10
je 0x56d887
mov eax, edi
neg eax
cmp eax, 0xf
jne 0x56d917
mov edx, dword [ebp + 0x1c]
lea ecx, [ebp - 0x110]
push edx
lea edx, [ebp - 0x10c]
lea eax, [ebp - 0x68]
call fcn.0056ac7c
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0x114]
test ecx, ecx
jl 0x57065c
mov dword [ebp - 0x7c], 1
neg edi
cmp edi, 0x10
sete al
and eax, 1
mov edx, dword [ebp - 0x10c]
cmp eax, edx
je 0x56d8d3
mov cl, 3
jmp 0x56d8d5
mov cl, 4
mov eax, dword [ebp - 0x84]
mov byte [eax], cl
inc dword [ebp - 0x84]
mov dl, byte [ebp - 0x114]
mov eax, dword [ebp - 0x84]
mov byte [eax], dl
inc dword [ebp - 0x84]
mov dl, byte [ebp - 0x110]
mov ecx, dword [ebp - 0x84]
mov byte [ecx], dl
inc dword [ebp - 0x84]
sub dword [ebp - 0xac], 2
jmp 0x56df07
test byte [ebp - 0x48], 0x40
je 0x56d92b
mov eax, dword [ebp + 0x1c]
mov dword [eax], 7
jmp 0x57065c
sub dword [ebp - 0xac], 2
mov edx, dword [ebp - 0x68]
movzx edi, byte [edx]
jmp 0x56d943
xor eax, eax
mov dword [ebp - 0x60], eax
add dword [ebp - 0x68], 2
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x5c
jne 0x56d959
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 2]
cmp dl, 0x45
je 0x56d93a
mov ecx, dword [ebp - 0x68]
cmp edi, 0xd
mov dword [ebp - 0xdc], ecx
je 0x56d96c
cmp edi, 0xa
jne 0x56d970
or dword [ebx + 0x44], 0x20
mov eax, dword [ebp - 0x60]
test eax, eax
jne 0x56ddf0
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x2d
jne 0x56ddf0
add dword [ebp - 0x68], 2
jmp 0x56d994
add dword [ebp - 0x68], 2
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x5c
jne 0x56d9d2
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x45
je 0x56d990
jmp 0x56d9d2
add dword [ebp - 0x68], 2
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x5c
jne 0x56d9c9
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x45
jne 0x56d9c9
add dword [ebp - 0x68], 2
jmp 0x56d9d2
mov dword [ebp - 0x60], 1
jmp 0x56d9e6
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x5c
jne 0x56d9e6
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x51
je 0x56d9aa
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
test dl, dl
je 0x56da00
mov ecx, dword [ebp - 0x60]
test ecx, ecx
jne 0x56da0e
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x5d
jne 0x56da0e
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x68], ecx
jmp 0x56ddf0
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x56dae2
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov dword [ebp - 0x118], ecx
mov eax, dword [ebp - 0x118]
cmp eax, 0xc0
jl 0x56daef
mov edx, dword [ebp - 0x118]
and edx, 0x3f
xor ecx, ecx
mov cl, byte [edx + 0x6997c4]
mov dword [ebp - 0x120], ecx
mov eax, dword [ebp - 0x120]
add eax, eax
lea eax, [eax + eax*2]
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x120]
mov eax, dword [edx*4 + 0x699408]
mov edx, dword [ebp - 0x118]
and eax, edx
shl eax, cl
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x11c], 1
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x120]
cmp ecx, eax
jg 0x56dad7
sub dword [ebp - 0x124], 6
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x124]
movzx edx, byte [edx + eax]
and edx, 0x3f
shl edx, cl
or dword [ebp - 0x118], edx
inc dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x120]
cmp ecx, eax
jle 0x56da9c
mov edx, dword [ebp - 0x120]
add dword [ebp - 0x68], edx
jmp 0x56daef
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0x118], eax
mov edx, dword [ebp - 0x60]
test edx, edx
jne 0x56db8d
mov ecx, dword [ebp - 0x118]
cmp ecx, 0x5c
jne 0x56db8d
mov eax, dword [ebp - 0x48]
push eax
push 1
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.0056a8a0
mov dword [ebp - 0x118], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x57065c
mov ecx, dword [ebp - 0x118]
test ecx, ecx
jge 0x56db8d
mov eax, dword [ebp - 0x118]
cmp eax, 0xfffffffb
jne 0x56db51
mov dword [ebp - 0x118], 8
jmp 0x56db8d
mov edx, dword [ebp - 0x118]
cmp edx, 0xffffffea
jne 0x56db68
mov dword [ebp - 0x118], 0x58
jmp 0x56db8d
mov ecx, dword [ebp - 0x118]
cmp ecx, 0xffffffef
jne 0x56db7f
mov dword [ebp - 0x118], 0x52
jmp 0x56db8d
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x68], eax
jmp 0x56ddf0
mov edx, dword [ebp - 0x118]
cmp edi, edx
jle 0x56dba5
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 8
jmp 0x57065c
mov eax, dword [ebp - 0x118]
cmp edi, eax
je 0x56ddf0
mov edx, dword [ebp - 0x118]
cmp edx, 0xd
je 0x56dbc9
mov ecx, dword [ebp - 0x118]
cmp ecx, 0xa
jne 0x56dbcd
or dword [ebx + 0x44], 0x20
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x56dd58
mov edx, dword [ebp - 0x118]
cmp edx, 0xff
jg 0x56dbff
test byte [ebp - 0x48], 1
je 0x56dd58
mov ecx, dword [ebp - 0x118]
cmp ecx, 0x7f
jle 0x56dd58
mov dword [ebp - 0x7c], 1
test byte [ebp - 0x48], 1
je 0x56dd1a
mov dword [ebp - 0x130], edi
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x134], eax
jmp 0x56dcf4
mov edx, dword [ebp - 0x128]
cmp edx, edi
jb 0x56dc45
mov ecx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x118]
cmp ecx, eax
jbe 0x56dcf4
mov edx, dword [ebp - 0x128]
cmp edi, edx
jbe 0x56dc67
mov ecx, edi
dec ecx
mov eax, dword [ebp - 0x12c]
cmp ecx, eax
ja 0x56dc67
mov edi, dword [ebp - 0x128]
jmp 0x56dcf4
mov eax, dword [ebp - 0x118]
mov edx, dword [ebp - 0x12c]
cmp eax, edx
jae 0x56dc96
mov ecx, dword [ebp - 0x118]
inc ecx
mov eax, dword [ebp - 0x128]
cmp ecx, eax
jb 0x56dc96
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0x118], edx
jmp 0x56dcf4
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x12c]
cmp ecx, eax
jne 0x56dcb7
mov edx, dword [ebp - 0x84]
mov byte [edx], 1
inc dword [ebp - 0x84]
jmp 0x56dcdd
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x128]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x12c]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
lea ecx, [ebp - 0x12c]
lea eax, [ebp - 0x130]
push ecx
lea ecx, [ebp - 0x128]
mov edx, dword [ebp - 0x134]
call fcn.0056bbe0
test eax, eax
jne 0x56dc27
mov eax, dword [ebp - 0x84]
mov byte [eax], 2
mov eax, edi
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x118]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
jmp 0x56df07
mov edx, dword [ebp - 0x118]
sub edx, edi
inc edx
add dword [ebp - 0xac], edx
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0xb0], ecx
mov eax, dword [ebp + 8]
test eax, eax
jne 0x56df07
mov edx, dword [ebp - 0x118]
cmp edi, edx
jg 0x56df07
mov ecx, edi
mov al, 1
and ecx, 7
mov edx, edi
shl al, cl
test edx, edx
jns 0x56dd9e
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1fc], al
test byte [ebp - 0x48], 1
je 0x56dde0
mov ecx, dword [ebx + 4]
xor eax, eax
mov dl, 1
mov al, byte [ecx + edi]
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x138]
and ecx, 7
shl dl, cl
test eax, eax
jns 0x56ddd6
add eax, 7
sar eax, 3
or byte [ebp + eax - 0x1fc], dl
inc edi
mov edx, dword [ebp - 0x118]
cmp edi, edx
jle 0x56dd8c
jmp 0x56df07
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x56deb3
cmp edi, 0xff
jg 0x56de16
test byte [ebp - 0x48], 1
je 0x56deb3
cmp edi, 0x7f
jle 0x56deb3
mov dword [ebp - 0x7c], 1
mov eax, dword [ebp - 0x84]
mov byte [eax], 1
mov eax, edi
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
test byte [ebp - 0x48], 1
je 0x56df07
mov edx, edi
test edx, edx
jns 0x56de52
add edx, 0x7f
sar edx, 7
xor ecx, ecx
mov cl, byte [edx + 0x6a4730]
shl ecx, 7
mov eax, edi
and eax, 0x8000007f
jns 0x56de6e
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx edx, word [ecx*2 + 0x69a930]
mov ecx, dword [edx*8 + 0x699aec]
add ecx, edi
mov dword [ebp - 0x13c], ecx
cmp ecx, edi
je 0x56df07
mov eax, dword [ebp - 0x84]
mov byte [eax], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x13c]
call fcn.0057b4cc
add dword [ebp - 0x84], eax
jmp 0x56df07
mov ecx, edi
mov dl, 1
and ecx, 7
mov eax, edi
shl dl, cl
test eax, eax
jns 0x56dec5
add eax, 7
sar eax, 3
or byte [ebp + eax - 0x1fc], dl
test byte [ebp - 0x48], 1
je 0x56defb
mov edx, dword [ebx + 4]
xor ecx, ecx
mov al, 1
mov cl, byte [edx + edi]
mov edi, ecx
mov ecx, edi
mov edx, edi
and ecx, 7
shl al, cl
test edx, edx
jns 0x56def1
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1fc], al
inc dword [ebp - 0xac]
mov dword [ebp - 0xb0], edi
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
movzx edi, byte [eax]
test edi, edi
je 0x56df28
cmp edi, 0x5d
jne 0x56ccf5
mov eax, dword [ebp - 0x60]
test eax, eax
jne 0x56ccf5
test edi, edi
jne 0x56df3a
mov edx, dword [ebp + 0x1c]
mov dword [edx], 6
jmp 0x57065c
mov ecx, dword [ebp - 0xac]
dec ecx
jne 0x56dff4
mov eax, dword [ebp - 0x7c]
test eax, eax
jne 0x56dff4
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x56df74
mov ecx, dword [ebp - 0x94]
test ecx, ecx
je 0x56df74
mov eax, dword [ebp - 0xb0]
cmp eax, 0x80
jge 0x56dff4
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x94]
test ecx, ecx
je 0x56dfab
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x56df93
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
mov byte [esi], 0x1e
inc esi
mov cl, byte [ebp - 0xb0]
mov byte [esi], cl
inc esi
jmp 0x570654
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x56dfd9
mov edx, dword [ebp - 0xb0]
cmp edx, 0x7f
jle 0x56dfd9
lea edx, [ebp - 0xd8]
mov eax, dword [ebp - 0xb0]
call fcn.0057b4cc
mov dword [ebp - 0xd0], eax
jmp 0x57056f
mov cl, byte [ebp - 0xb0]
mov byte [ebp - 0xd8], cl
mov dword [ebp - 0xd0], 1
jmp 0x57056f
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x56e003
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x56e0bb
mov edx, dword [ebp - 0x98]
test edx, edx
jne 0x56e0bb
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 0
inc dword [ebp - 0x84]
mov byte [esi], 0x50
inc esi
add esi, 2
mov eax, dword [ebp - 0x94]
test eax, eax
je 0x56e04c
mov dl, 1
jmp 0x56e04e
xor edx, edx
mov byte [esi], dl
mov eax, dword [ebp - 0xac]
test eax, eax
jle 0x56e091
or byte [esi], 2
inc esi
mov ecx, dword [ebp - 0x84]
sub ecx, esi
lea eax, [esi + 0x20]
push ecx
push esi
push eax
call sub.MSVCRT.DLL_memmove
add esp, 0xc
lea edx, [ebp - 0x1fc]
push 0x20
push edx
push esi
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
mov esi, dword [ebp - 0x84]
add esi, 0x20
jmp 0x56e097
mov esi, dword [ebp - 0x84]
mov edx, dword [ebp - 0x70]
mov eax, esi
sub eax, edx
mov ecx, dword [ebp - 0x70]
sar eax, 8
mov byte [ecx + 1], al
mov eax, esi
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x70]
sub eax, edx
and al, 0xff
mov byte [ecx + 2], al
jmp 0x570654
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0x98]
cmp eax, edx
jne 0x56e0cf
mov cl, 0x4e
jmp 0x56e0d1
mov cl, 0x4f
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x94]
test eax, eax
je 0x56e121
mov edx, dword [ebp + 8]
test edx, edx
jne 0x56e133
xor edi, edi
mov eax, esi
mov dword [ebp - 0x1dc], eax
lea edx, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1dc]
inc edi
mov al, byte [ecx]
not al
mov byte [edx], al
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x56e0fb
jmp 0x56e133
push 0x20
lea ecx, [ebp - 0x1fc]
push ecx
push esi
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
add esi, 0x20
jmp 0x570654
mov eax, dword [ebp - 0xa0]
test eax, eax
je 0x57051d
mov edx, dword [ebp + 0x1c]
push edx
lea ecx, [ebp - 0x1c]
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 0x68]
inc eax
call fcn.0056ae18
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ecx]
test eax, eax
jne 0x57065c
jmp 0x56e198
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], 0xffffffff
jmp 0x56e198
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x1c], 0xffffffff
jmp 0x56e198
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x70]
test eax, eax
jne 0x56e1ad
mov edx, dword [ebp + 0x1c]
mov dword [edx], 9
jmp 0x57065c
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x56e1c0
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x30], edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
jne 0x56e1ce
xor edx, edx
jmp 0x56e1d3
mov edx, 0x200
mov dword [ebp - 0x40], edx
xor eax, eax
mov dword [ebp - 0x14], eax
xor ecx, ecx
mov dword [ebp - 0x9c], ecx
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x2b
jne 0x56e208
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x9c], 1
inc dword [ebp - 0x68]
jmp 0x56e224
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x3f
jne 0x56e21e
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
inc dword [ebp - 0x68]
jmp 0x56e224
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x1c
je 0x56e23b
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x1d
jne 0x56e306
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x56e298
test byte [esi - 1], 0x80
je 0x56e298
lea edx, [esi - 1]
mov dword [ebp - 0x140], edx
jmp 0x56e259
dec dword [ebp - 0x140]
mov ecx, dword [ebp - 0x140]
xor eax, eax
mov al, byte [ecx]
and eax, 0xc0
cmp eax, 0x80
je 0x56e253
mov edi, esi
mov eax, dword [ebp - 0x140]
sub edi, eax
push edi
mov edx, dword [ebp - 0x140]
push edx
lea ecx, [ebp - 0x90]
push ecx
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
or edi, 0x80
jmp 0x56e2af
movzx edi, byte [esi - 1]
mov eax, dword [ebp - 0x18]
dec eax
jle 0x56e2af
mov edx, dword [ebp - 0x3c]
or edx, edi
mov ecx, dword [ebx + 0x48]
or edx, ecx
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x9c]
test eax, eax
jne 0x56e3bd
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x56e3bd
lea ecx, [ebp - 0x90]
push ecx
mov eax, dword [ebp - 0x68]
inc eax
push eax
mov edx, dword [ebp - 0x48]
push edx
push ebx
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx]
mov ecx, dword [ebp - 0x80]
mov edx, edi
call fcn.0056bc7c
test eax, eax
je 0x56e3bd
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x9c], 1
jmp 0x56e3bd
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x1e
jne 0x56e367
mov dword [ebp - 0x14], 0xd
mov eax, dword [ebp - 0x70]
movzx edi, byte [eax + 1]
mov eax, dword [ebp - 0x9c]
test eax, eax
jne 0x56e3bd
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x56e3bd
push 0
mov ecx, dword [ebp - 0x68]
inc ecx
push ecx
mov eax, dword [ebp - 0x48]
push eax
push ebx
mov ecx, dword [ebp - 0x80]
mov edx, edi
mov eax, 0x1e
call fcn.0056bc7c
test eax, eax
je 0x56e3bd
xor edx, edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x9c], 1
jmp 0x56e3bd
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x17
jae 0x56e626
mov dword [ebp - 0x14], 0x1a
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x9c]
test eax, eax
movzx edi, byte [edx]
jne 0x56e3bd
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x56e3bd
push 0
mov ecx, dword [ebp - 0x68]
inc ecx
push ecx
mov eax, dword [ebp - 0x48]
push eax
push ebx
mov ecx, dword [ebp - 0x80]
xor edx, edx
mov eax, edi
call fcn.0056bc7c
test eax, eax
je 0x56e3bd
xor edx, edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x9c], 1
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x10
je 0x56e3d0
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0xf
jne 0x56e3ee
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax + 1]
mov dword [ebp - 0x148], edx
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx + 2]
mov dword [ebp - 0x14c], eax
jmp 0x56e3fd
or edx, 0xffffffff
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x144], esi
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x56eea0
mov edx, dword [ebp - 0x1c]
dec edx
je 0x56e41b
or dword [ebx + 0x44], 1
mov ecx, dword [ebp - 0x14]
add dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x56e472
mov edx, dword [ebp - 0x1c]
inc edx
jne 0x56e43c
mov cl, byte [ebp - 0x10]
add cl, 0x1f
mov byte [esi], cl
inc esi
jmp 0x56e5d0
mov eax, dword [ebp - 0x1c]
dec eax
jne 0x56e450
mov dl, byte [ebp - 0x10]
add dl, 0x23
mov byte [esi], dl
inc esi
jmp 0x56e5d0
mov cl, byte [ebp - 0x10]
add cl, 0x25
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x1c]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0x1c]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
jmp 0x56e5d0
mov ecx, dword [ebp - 0x18]
dec ecx
jne 0x56e4c0
mov eax, dword [ebp - 0x1c]
inc eax
jne 0x56e48c
mov dl, byte [ebp - 0x10]
add dl, 0x21
mov byte [esi], dl
inc esi
jmp 0x56e5d0
mov esi, dword [ebp - 0x144]
mov eax, dword [ebp - 0x1c]
dec eax
je 0x56eea0
mov dl, byte [ebp - 0x10]
add dl, 0x25
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x1c]
dec ecx
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x1c]
add al, 0xff
and al, 0xff
mov byte [esi + 1], al
add esi, 2
jmp 0x56e5d0
mov dl, byte [ebp - 0x14]
add dl, 0x27
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x18]
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x18]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x56e540
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x56e511
cmp edi, 0x80
jl 0x56e511
mov eax, edi
lea edx, [ebp - 0x90]
and eax, 7
push eax
push edx
push esi
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
mov ecx, edi
and ecx, 7
add esi, ecx
jmp 0x56e532
mov eax, edi
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x148]
test edx, edx
jl 0x56e532
mov cl, byte [ebp - 0x148]
mov byte [esi], cl
inc esi
mov al, byte [ebp - 0x14c]
mov byte [esi], al
inc esi
mov dl, byte [ebp - 0x10]
add dl, 0x1f
mov byte [esi], dl
inc esi
jmp 0x56e5d0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
je 0x56e5d0
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x56e57c
cmp edi, 0x80
jl 0x56e57c
mov ecx, edi
lea eax, [ebp - 0x90]
and ecx, 7
push ecx
push eax
push esi
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
mov edx, edi
and edx, 7
add esi, edx
jmp 0x56e581
mov ecx, edi
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x148]
test eax, eax
jl 0x56e59d
mov dl, byte [ebp - 0x148]
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 0x14c]
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x18]
sub dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
dec edx
jne 0x56e5b4
mov cl, byte [ebp - 0x10]
add cl, 0x23
mov byte [esi], cl
inc esi
jmp 0x56e5d0
mov al, byte [ebp - 0x10]
add al, 0x25
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x1c]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0x1c]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x56e5fc
cmp edi, 0x80
jl 0x56e5fc
mov edx, edi
lea ecx, [ebp - 0x90]
and edx, 7
push edx
push ecx
push esi
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
and edi, 7
add esi, edi
jmp 0x56e601
mov eax, edi
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x148]
test edx, edx
jl 0x56eccb
mov cl, byte [ebp - 0x148]
mov byte [esi], cl
inc esi
mov al, byte [ebp - 0x14c]
mov byte [esi], al
inc esi
jmp 0x56eccb
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x4e
je 0x56e651
mov eax, dword [ebp - 0x70]
mov dl, byte [eax]
cmp dl, 0x4f
je 0x56e651
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x50
je 0x56e651
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x51
jne 0x56e6f7
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x56e660
mov esi, dword [ebp - 0x70]
jmp 0x56eea0
mov eax, dword [ebp - 0x1c]
dec eax
je 0x56e66a
or dword [ebx + 0x44], 1
mov edx, dword [ebp - 0x18]
test edx, edx
jne 0x56e684
mov ecx, dword [ebp - 0x1c]
inc ecx
jne 0x56e684
mov al, byte [ebp - 0x10]
add al, 0x46
mov byte [esi], al
inc esi
jmp 0x56eccb
mov edx, dword [ebp - 0x18]
dec edx
jne 0x56e69d
mov ecx, dword [ebp - 0x1c]
inc ecx
jne 0x56e69d
mov al, byte [ebp - 0x10]
add al, 0x48
mov byte [esi], al
inc esi
jmp 0x56eccb
mov edx, dword [ebp - 0x18]
test edx, edx
jne 0x56e6b7
mov ecx, dword [ebp - 0x1c]
dec ecx
jne 0x56e6b7
mov al, byte [ebp - 0x10]
add al, 0x4a
mov byte [esi], al
inc esi
jmp 0x56eccb
mov dl, byte [ebp - 0x10]
add dl, 0x4c
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x18]
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x18]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
mov edx, dword [ebp - 0x1c]
inc edx
jne 0x56e6de
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0x1c]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
jmp 0x56eccb
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x5e
je 0x56e721
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x5f
je 0x56e721
mov eax, dword [ebp - 0x70]
mov dl, byte [eax]
cmp dl, 0x5d
je 0x56e721
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x60
jne 0x56ecb0
xor edx, edx
mov edi, esi
mov dword [ebp - 0x154], edx
xor edx, edx
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x158], edx
mov ecx, dword [ebp - 0x70]
sub edi, eax
mov al, byte [ecx]
cmp al, 0x60
jne 0x56e75a
mov edx, dword [ebp - 0x70]
mov cl, byte [edx + 3]
cmp cl, 0x66
jne 0x56e75a
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x37
jmp 0x57065c
mov edx, dword [ebp - 0x1c]
inc edx
jne 0x56e7a7
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x15c], ecx
mov eax, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x15c]
xor edx, edx
mov dl, byte [eax + 1]
xor eax, eax
shl edx, 8
mov al, byte [ecx + 2]
or edx, eax
add dword [ebp - 0x15c], edx
mov edx, dword [ebp - 0x15c]
mov cl, byte [edx]
cmp cl, 0x55
jne 0x56e769
mov eax, esi
mov edx, dword [ebp - 0x15c]
sub eax, edx
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x56e89e
mov eax, dword [ebp - 0x1c]
dec eax
jg 0x56e807
mov byte [esi], 0
push ebx
mov edx, dword [ebp - 0x78]
push edx
mov ecx, dword [ebp - 0x80]
mov edx, 1
mov eax, dword [ebp - 0x70]
call fcn.0056bad8
push edi
mov ecx, dword [ebp - 0x70]
push ecx
mov eax, dword [ebp - 0x70]
inc eax
push eax
call sub.MSVCRT.DLL_memmove
add esp, 0xc
inc esi
mov edx, dword [ebp - 0x1c]
test edx, edx
jne 0x56e7f5
mov ecx, dword [ebp - 0x70]
mov byte [ecx], 0x6f
jmp 0x56eea0
mov edx, dword [ebp - 0x70]
mov al, byte [ebp - 0x10]
add al, 0x67
mov byte [edx], al
inc dword [ebp - 0x70]
jmp 0x56e896
mov byte [esi], 0
push ebx
mov ecx, dword [ebp - 0x78]
push ecx
mov ecx, dword [ebp - 0x80]
mov edx, 4
mov eax, dword [ebp - 0x70]
call fcn.0056bad8
push edi
mov eax, dword [ebp - 0x70]
push eax
mov edx, dword [ebp - 0x70]
add edx, 4
push edx
call sub.MSVCRT.DLL_memmove
mov eax, dword [ebp - 0x70]
mov cl, byte [ebp - 0x10]
add cl, 0x67
add esp, 0xc
mov byte [eax], cl
add esi, 4
inc dword [ebp - 0x70]
mov edx, dword [ebp - 0x70]
mov byte [edx], 0x5e
inc dword [ebp - 0x70]
mov ecx, dword [ebp - 0x158]
test ecx, ecx
jne 0x56e85b
xor eax, eax
jmp 0x56e866
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x158]
sub eax, edx
mov dword [ebp - 0x160], eax
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x158], ecx
mov eax, dword [ebp - 0x160]
mov edx, dword [ebp - 0x70]
sar eax, 8
mov byte [edx], al
mov eax, dword [ebp - 0x70]
mov cl, byte [ebp - 0x160]
and cl, 0xff
mov byte [eax + 1], cl
add dword [ebp - 0x70], 2
dec dword [ebp - 0x1c]
jmp 0x56e9d2
mov edx, dword [ebp - 0x18]
dec edx
jle 0x56e9c5
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x56e910
mov eax, dword [ebp - 0x18]
dec eax
imul dword [ebp - 0x50]
mov dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x18]
dec edx
mov dword [ebp - 0x220], edx
fild dword [ebp - 0x220]
fild dword [ebp - 0x50]
fmulp st(1)
fcomp qword [0x570670]
fnstsw ax
sahf
ja 0x56e8f2
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov eax, dword [edx]
sub ecx, eax
mov edx, dword [ebp - 0x164]
cmp ecx, edx
jge 0x56e900
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x14
jmp 0x57065c
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x164]
add dword [eax], edx
jmp 0x56e9c5
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x56e924
mov eax, dword [ebp - 0x30]
test eax, eax
jge 0x56e924
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x150], 1
mov ecx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
jge 0x56e9c5
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x168], edx
push edi
mov ecx, dword [ebp - 0x70]
push ecx
push esi
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x168]
cmp eax, edx
jae 0x56e9a3
xor ecx, ecx
xor edx, edx
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or ecx, edx
mov edx, dword [ebx + 0x20]
add ecx, edi
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
add eax, 2
or cl, dl
mov edx, edi
add cl, dl
mov edx, dword [ebx + 0x20]
and cl, 0xff
mov byte [edx + 1], cl
add dword [ebx + 0x20], 2
mov ecx, dword [ebp - 0x168]
cmp eax, ecx
jb 0x56e963
mov eax, dword [ebp - 0x168]
add esi, edi
mov dword [ebp - 0x78], eax
inc dword [ebp - 0x150]
mov eax, dword [ebp - 0x150]
mov edx, dword [ebp - 0x18]
cmp eax, edx
jl 0x56e93f
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jle 0x56e9d2
mov eax, dword [ebp - 0x18]
sub dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
test edx, edx
jl 0x56ebf2
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x56ea54
mov eax, dword [ebp - 0x1c]
test eax, eax
jle 0x56ea54
mov edx, dword [ebp - 0x50]
add edx, 7
imul edx, dword [ebp - 0x1c]
add edx, 0xfffffffa
mov dword [ebp - 0x16c], edx
fild dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x50]
add ecx, 7
mov dword [ebp - 0x220], ecx
fild dword [ebp - 0x220]
fmulp st(1)
fcomp qword [0x570670]
fnstsw ax
sahf
ja 0x56ea36
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov eax, dword [edx]
sub ecx, eax
mov edx, dword [ebp - 0x16c]
cmp ecx, edx
jge 0x56ea44
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x14
jmp 0x57065c
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x16c]
add dword [eax], edx
jmp 0x56eb6d
mov ecx, dword [ebp - 0x1c]
dec ecx
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x150]
test eax, eax
jl 0x56eb6d
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x170], edx
mov cl, byte [ebp - 0x10]
add cl, 0x67
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x150]
test eax, eax
je 0x56eac9
mov byte [esi], 0x5e
inc esi
mov edx, dword [ebp - 0x158]
test edx, edx
jne 0x56ea9a
xor ecx, ecx
jmp 0x56eaa4
mov ecx, esi
mov eax, dword [ebp - 0x158]
sub ecx, eax
mov dword [ebp - 0x174], ecx
mov dword [ebp - 0x158], esi
mov edx, dword [ebp - 0x174]
sar edx, 8
mov byte [esi], dl
mov al, byte [ebp - 0x174]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
push edi
mov edx, dword [ebp - 0x70]
push edx
push esi
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x170]
cmp eax, edx
jae 0x56eb4e
xor ecx, ecx
xor edx, edx
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or ecx, edx
mov edx, dword [ebp - 0x150]
add ecx, edi
test edx, edx
je 0x56eb05
mov edx, 4
jmp 0x56eb0a
mov edx, 1
add ecx, edx
mov edx, dword [ebx + 0x20]
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or cl, dl
mov edx, edi
add cl, dl
mov edx, dword [ebp - 0x150]
test edx, edx
je 0x56eb30
mov dl, 4
jmp 0x56eb32
mov dl, 1
add cl, dl
mov edx, dword [ebx + 0x20]
and cl, 0xff
add eax, 2
mov byte [edx + 1], cl
add dword [ebx + 0x20], 2
mov ecx, dword [ebp - 0x170]
cmp eax, ecx
jb 0x56eae4
mov eax, dword [ebp - 0x170]
add esi, edi
mov dword [ebp - 0x78], eax
dec dword [ebp - 0x150]
mov eax, dword [ebp - 0x150]
test eax, eax
jge 0x56ea6c
mov edx, dword [ebp - 0x158]
test edx, edx
je 0x56eccb
mov eax, esi
mov edx, dword [ebp - 0x158]
sub eax, edx
inc eax
mov edx, esi
sub edx, eax
xor ecx, ecx
mov cl, byte [edx + 1]
shl ecx, 8
movzx edi, byte [edx + 2]
or ecx, edi
mov dword [ebp - 0x178], ecx
mov ecx, dword [ebp - 0x178]
test ecx, ecx
jne 0x56ebac
xor ecx, ecx
jmp 0x56ebba
mov ecx, dword [ebp - 0x158]
mov edi, dword [ebp - 0x178]
sub ecx, edi
mov dword [ebp - 0x158], ecx
mov byte [esi], 0x55
inc esi
mov ecx, eax
sar ecx, 8
mov byte [esi], cl
mov ecx, eax
and cl, 0xff
mov byte [esi + 1], cl
mov ecx, eax
sar ecx, 8
add esi, 2
and al, 0xff
mov byte [edx + 1], cl
mov byte [edx + 2], al
mov eax, dword [ebp - 0x158]
test eax, eax
jne 0x56eb7b
jmp 0x56eccb
mov eax, dword [ebp - 0x154]
mov edx, esi
sub edx, eax
xor ecx, ecx
mov dword [ebp - 0x17c], edx
mov edx, dword [ebp - 0x17c]
mov eax, dword [ebp - 0x17c]
mov cl, byte [edx + 1]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 2]
mov eax, dword [ebp - 0x17c]
or ecx, edx
sub eax, ecx
mov dword [ebp - 0x180], eax
mov ecx, dword [ebp - 0x17c]
mov dl, byte [ebp - 0x10]
add dl, 0x56
mov byte [ecx], dl
mov eax, dword [ebp + 8]
test eax, eax
jne 0x56eccb
mov edx, dword [ebp - 0x180]
mov cl, byte [edx]
cmp cl, 0x5d
je 0x56eccb
mov eax, dword [ebp - 0x180]
mov dword [ebp - 0x184], eax
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x17c]
mov eax, dword [ebp - 0x184]
call fcn.0056b77c
test eax, eax
je 0x56ec80
mov edx, dword [ebp - 0x180]
add byte [edx], 3
jmp 0x56eccb
mov ecx, dword [ebp - 0x184]
mov edx, dword [ebp - 0x184]
xor eax, eax
mov al, byte [ecx + 1]
xor ecx, ecx
shl eax, 8
mov cl, byte [edx + 2]
or eax, ecx
add dword [ebp - 0x184], eax
mov eax, dword [ebp - 0x184]
mov dl, byte [eax]
cmp dl, 0x54
je 0x56ec5d
jmp 0x56eccb
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x6d
je 0x56eea0
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xb
jmp 0x57065c
mov ecx, dword [ebp - 0x9c]
test ecx, ecx
je 0x56eea0
mov eax, dword [ebp - 0x5c]
mov dl, byte [eax]
cmp dl, 0x27
je 0x56ecf6
mov ecx, dword [ebp - 0x5c]
mov al, byte [ecx]
cmp al, 0x41
je 0x56ecf6
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx]
cmp cl, 0x34
jne 0x56ed32
mov eax, dword [ebp - 0x5c]
mov dl, byte [eax]
cmp dl, 0x41
jne 0x56ed1c
mov ecx, dword [ebp - 0x5c]
mov al, byte [ecx + 3]
cmp al, 0x10
je 0x56ed15
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx + 3]
cmp cl, 0xf
jne 0x56ed1c
mov eax, 2
jmp 0x56ed1e
xor eax, eax
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
xor edx, edx
mov dl, byte [ecx + 0x699754]
add eax, edx
add dword [ebp - 0x5c], eax
mov eax, esi
mov ecx, dword [ebp - 0x5c]
sub eax, ecx
mov dword [ebp - 0x188], eax
mov eax, dword [ebp - 0x188]
test eax, eax
jle 0x56eea0
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
add ecx, 0xffffffe1
cmp ecx, 0x20
ja case.0x56ed66.31
mov cl, byte [ecx + 0x56ed6d]
jmp dword [ecx*4 + 0x56ed8e]
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x28
jmp 0x56eea0
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x29
jmp 0x56eea0
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x2a
jmp 0x56eea0
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x2b
jmp 0x56eea0
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x42
jmp 0x56eea0
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x43
jmp 0x56eea0
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x44
jmp 0x56eea0
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x45
jmp 0x56eea0
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x35
jmp 0x56eea0
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x36
jmp 0x56eea0
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x37
jmp 0x56eea0
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x38
jmp 0x56eea0
mov eax, dword [ebp - 0x188]
push eax
mov edx, dword [ebp - 0x5c]
push edx
mov ecx, dword [ebp - 0x5c]
add ecx, 3
push ecx
call sub.MSVCRT.DLL_memmove
add dword [ebp - 0x188], 3
mov eax, dword [ebp - 0x5c]
add esi, 3
add esp, 0xc
mov byte [eax], 0x5d
mov byte [esi], 0x55
inc esi
mov edx, dword [ebp - 0x188]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0x188]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
mov eax, dword [ebp - 0x188]
mov edx, dword [ebp - 0x5c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x5c]
mov cl, byte [ebp - 0x188]
and cl, 0xff
mov byte [eax + 2], cl
xor edx, edx
mov dword [ebp - 0x70], edx
mov ecx, dword [ebp - 0x40]
or dword [ebx + 0x48], ecx
jmp 0x570654
mov eax, dword [ebp - 0x48]
xor edx, edx
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0x20], 0x5f
mov ecx, dword [ebx + 0x20]
xor eax, eax
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0xa8], eax
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x2a
jne 0x56eff1
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 2
je 0x56eff1
mov dword [ebp - 0x190], str.ACCEPT
inc dword [ebp - 0x68]
xor edx, edx
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x70], edx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebx + 0xc]
test byte [edx + eax], 2
jne 0x56ef17
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x3a
jne 0x56ef41
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3b
jmp 0x57065c
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x29
je 0x56ef58
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3c
jmp 0x57065c
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x194]
sub ecx, eax
xor edi, edi
mov dword [ebp - 0x18c], ecx
jmp 0x56efc7
mov eax, dword [edi*8 + 0x698758]
mov edx, dword [ebp - 0x18c]
cmp eax, edx
jne 0x56efb8
mov ecx, dword [ebp - 0x18c]
push ecx
mov eax, dword [ebp - 0x190]
push eax
mov edx, dword [ebp - 0x194]
push edx
call sub.MSVCRT.DLL_strncmp
add esp, 0xc
test eax, eax
jne 0x56efb8
mov cl, byte [edi*8 + 0x69875c]
mov byte [esi], cl
mov al, byte [esi]
inc esi
cmp al, 0x6e
jne 0x56efd1
mov dword [ebx + 0x4c], 1
jmp 0x56efd1
mov edx, dword [edi*8 + 0x698758]
inc edx
add dword [ebp - 0x190], edx
inc edi
mov ecx, dword [0x698790]
cmp edi, ecx
jl 0x56ef6d
mov eax, dword [0x698790]
cmp edi, eax
jl 0x570654
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3c
jmp 0x57065c
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x3f
jne 0x56ff01
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3a
jg 0x56f08a
je 0x56f10c
add ecx, 0xffffffdf
cmp ecx, 0x18
ja case.0x56f01f.34
jmp dword [ecx*4 + 0x56f026]
cmp ecx, 0x43
jg 0x56f0b1
je 0x56f656
sub ecx, 0x3c
je 0x56f5f3
dec ecx
je 0x56f5be
dec ecx
je 0x56f647
jmp case.0x56f01f.34
sub ecx, 0x50
je 0x56f70c
sub ecx, 2
je 0x56fad6
sub ecx, 0x2a
je 0x56f102
jmp case.0x56f01f.34
inc dword [ebp - 0x68]
jmp 0x56f0d5
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
test dl, dl
je 0x56f0e7
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x29
jne 0x56f0d2
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
test cl, cl
jne 0x570654
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x12
jmp 0x57065c
mov dword [ebp - 0xa8], 1
mov dword [ebp - 0x20], 0x5e
inc dword [ebp - 0x68]
jmp 0x56ff2f
mov dword [ebp - 0x20], 0x60
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x3f
jne 0x56f159
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 2]
cmp dl, 0x3d
je 0x56ff2f
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 2]
cmp al, 0x21
je 0x56ff2f
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 2]
cmp cl, 0x3c
je 0x56ff2f
mov byte [esi + 3], 0x64
mov dword [ebp - 0xc0], 3
mov dword [ebp - 0xbc], 0xffffffff
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x52
jne 0x56f19a
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 2]
cmp al, 0x26
jne 0x56f19a
mov dword [ebp - 0xcc], 0xffffffff
add dword [ebp - 0x68], 2
mov byte [esi + 3], 0x65
jmp 0x56f1fb
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x3c
jne 0x56f1b4
mov dword [ebp - 0xcc], 0x3e
inc dword [ebp - 0x68]
jmp 0x56f1fb
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x27
jne 0x56f1ce
mov dword [ebp - 0xcc], 0x27
inc dword [ebp - 0x68]
jmp 0x56f1fb
xor ecx, ecx
mov dword [ebp - 0xcc], ecx
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x2d
je 0x56f1eb
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x2b
jne 0x56f1fb
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov dword [ebp - 0xbc], ecx
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 0x10
jne 0x56f21d
inc dword [ebp - 0x68]
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x1c
jmp 0x57065c
xor edx, edx
mov dword [ebp - 0xb8], edx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], ecx
jmp 0x56f272
mov eax, dword [ebp - 0xb8]
test eax, eax
jl 0x56f26f
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x6991ed], 4
je 0x56f266
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x68]
add eax, eax
xor ecx, ecx
mov cl, byte [edx]
lea eax, [eax + eax*4]
add eax, ecx
add eax, 0xffffffd0
jmp 0x56f269
or eax, 0xffffffff
mov dword [ebp - 0xb8], eax
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebx + 0xc]
test byte [eax + ecx], 0x10
jne 0x56f233
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x1ac]
sub edx, ecx
mov dword [ebp - 0x1a4], edx
mov eax, dword [ebp - 0xcc]
test eax, eax
jle 0x56f2b1
mov edx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
jne 0x56f2be
mov edx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x29
je 0x56f2cf
dec dword [ebp - 0x68]
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x1a
jmp 0x57065c
mov edx, dword [ebp + 8]
test edx, edx
jne 0x56ff2f
mov ecx, dword [ebp - 0xbc]
test ecx, ecx
jle 0x56f36c
mov eax, dword [ebp - 0xb8]
test eax, eax
jg 0x56f300
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3a
jmp 0x57065c
mov ecx, dword [ebp - 0xbc]
cmp ecx, 0x2d
jne 0x56f319
mov eax, dword [ebx + 0x30]
mov edx, dword [ebp - 0xb8]
sub eax, edx
inc eax
jmp 0x56f324
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebx + 0x30]
add eax, edx
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
jle 0x56f341
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebx + 0x34]
cmp eax, edx
jle 0x56f34f
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0xf
jmp 0x57065c
mov eax, dword [ebp - 0xb8]
sar eax, 8
mov byte [esi + 4], al
mov dl, byte [ebp - 0xb8]
and dl, 0xff
mov byte [esi + 5], dl
jmp 0x56ff2f
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], ecx
xor eax, eax
mov dword [ebp - 0x198], eax
jmp 0x56f3b2
mov edx, dword [ebp - 0x1a4]
push edx
mov ecx, dword [ebp - 0x1b0]
add ecx, 2
push ecx
mov eax, dword [ebp - 0x1ac]
push eax
call sub.MSVCRT.DLL_strncmp
add esp, 0xc
test eax, eax
je 0x56f3bf
mov edx, dword [ebx + 0x2c]
add dword [ebp - 0x1b0], edx
inc dword [ebp - 0x198]
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebx + 0x28]
cmp ecx, eax
jl 0x56f37f
mov edx, dword [ebp - 0x198]
mov ecx, dword [ebx + 0x28]
cmp edx, ecx
jge 0x56f409
mov eax, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1b0]
xor edx, edx
mov dl, byte [eax]
xor eax, eax
shl edx, 8
mov al, byte [ecx + 1]
or edx, eax
mov dword [ebp - 0xb8], edx
mov edx, dword [ebp - 0xb8]
sar edx, 8
mov byte [esi + 4], dl
mov cl, byte [ebp - 0xb8]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x56ff2f
test byte [ebp - 0x48], 8
setne al
and eax, 1
push eax
mov ecx, dword [ebp - 0x1a4]
mov edx, dword [ebp - 0x1ac]
mov eax, ebx
call fcn.0056b25c
mov dword [ebp - 0x198], eax
test eax, eax
jle 0x56f44e
mov edx, dword [ebp - 0x198]
sar edx, 8
mov byte [esi + 4], dl
mov cl, byte [ebp - 0x198]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x56ff2f
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x56f466
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x57065c
mov ecx, dword [ebp - 0x1ac]
mov al, byte [ecx]
cmp al, 0x52
jne 0x56f532
xor edx, edx
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0x198], 1
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x1a4]
cmp ecx, eax
jge 0x56f4fd
mov edx, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x198]
xor eax, eax
mov al, byte [edx + ecx]
test byte [eax + 0x6991ed], 4
jne 0x56f4c0
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x57065c
mov ecx, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x198]
xor edx, edx
mov dl, byte [ecx + eax]
mov ecx, dword [ebp - 0xb8]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add edx, ecx
add edx, 0xffffffd0
mov dword [ebp - 0xb8], edx
inc dword [ebp - 0x198]
mov eax, dword [ebp - 0x198]
mov edx, dword [ebp - 0x1a4]
cmp eax, edx
jl 0x56f498
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
jne 0x56f511
mov dword [ebp - 0xb8], 0xffff
mov byte [esi + 3], 0x65
mov eax, dword [ebp - 0xb8]
sar eax, 8
mov byte [esi + 4], al
mov dl, byte [ebp - 0xb8]
and dl, 0xff
mov byte [esi + 5], dl
jmp 0x56ff2f
mov ecx, dword [ebp - 0x1a4]
cmp ecx, 6
jne 0x56f56a
push 6
push str.DEFINE
mov eax, dword [ebp - 0x1ac]
push eax
call sub.MSVCRT.DLL_strncmp
add esp, 0xc
test eax, eax
jne 0x56f56a
mov byte [esi + 3], 0x66
mov dword [ebp - 0xc0], 1
jmp 0x56ff2f
mov edx, dword [ebp - 0xb8]
test edx, edx
jle 0x56f59e
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebx + 0x34]
cmp ecx, eax
jg 0x56f59e
mov edx, dword [ebp - 0xb8]
sar edx, 8
mov byte [esi + 4], dl
mov cl, byte [ebp - 0xb8]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x56ff2f
mov eax, dword [ebp - 0xb8]
test eax, eax
jne 0x56f5af
mov edx, 0x23
jmp 0x56f5b4
mov edx, 0xf
mov eax, dword [ebp + 0x1c]
mov dword [eax], edx
jmp 0x57065c
mov dword [ebp - 0x20], 0x58
inc dword [ebp - 0x68]
jmp 0x56ff2f
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x29
jne 0x56f5e7
mov byte [esi], 0x6d
inc esi
xor edx, edx
mov dword [ebp - 0x70], edx
jmp 0x570654
mov dword [ebp - 0x20], 0x59
jmp 0x56ff2f
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
sub al, 0x21
je 0x56f611
sub al, 0x1c
jne 0x56f621
mov dword [ebp - 0x20], 0x5a
add dword [ebp - 0x68], 2
jmp 0x56ff2f
mov dword [ebp - 0x20], 0x5b
add dword [ebp - 0x68], 2
jmp 0x56ff2f
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
mov eax, dword [ebx + 0xc]
test byte [eax + ecx], 0x10
jne case.0x56f01f.39
inc dword [ebp - 0x68]
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x18
jmp 0x57065c
mov dword [ebp - 0x20], 0x5d
inc dword [ebp - 0x68]
jmp 0x56ff2f
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x4c], 1
mov byte [esi], 0x53
inc esi
xor ecx, ecx
mov dword [ebp - 0x1b4], ecx
jmp 0x56f68b
mov eax, dword [ebp - 0x1b4]
mov edx, dword [ebp - 0x68]
add eax, eax
xor ecx, ecx
mov cl, byte [edx]
lea eax, [eax + eax*4]
add eax, ecx
add eax, 0xffffffd0
mov dword [ebp - 0x1b4], eax
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x6991ed], 4
jne 0x56f66e
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x29
je 0x56f6b5
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x27
jmp 0x57065c
mov ecx, dword [ebp - 0x1b4]
cmp ecx, 0xff
jle 0x56f6d1
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x26
jmp 0x57065c
mov dl, byte [ebp - 0x1b4]
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebx + 0x18]
sub ecx, eax
inc ecx
sar ecx, 8
mov byte [esi], cl
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebx + 0x18]
sub edx, ecx
inc edx
and dl, 0xff
mov byte [esi + 1], dl
mov byte [esi + 2], 0
mov byte [esi + 3], 0
add esi, 4
xor eax, eax
mov dword [ebp - 0x70], eax
jmp 0x570654
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x3d
je 0x56f723
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x3e
jne 0x56f745
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x3e
sete dl
and edx, 1
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0xcc], 0x29
jmp 0x56f961
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x3c
je case.0x56f01f.39
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x29
jmp 0x57065c
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x3c
jne 0x56f76c
mov edx, 0x3e
jmp 0x56f771
mov edx, 0x27
mov dword [ebp - 0xcc], edx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], eax
jmp 0x56f788
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebx + 0xc]
test byte [edx + eax], 0x10
jne 0x56f785
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x1ac]
sub ecx, eax
mov dword [ebp - 0x1a4], ecx
mov edx, dword [ebp + 8]
test edx, edx
je 0x56f824
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebp - 0xcc]
cmp eax, edx
je 0x56f7cf
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x2a
jmp 0x57065c
mov eax, dword [ebx + 0x28]
cmp eax, 0x2710
jl 0x56f7e7
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x31
jmp 0x57065c
mov ecx, dword [ebp - 0x1a4]
add ecx, 3
mov eax, dword [ebx + 0x2c]
cmp ecx, eax
jle 0x56f942
mov edx, dword [ebp - 0x1a4]
add edx, 3
mov dword [ebx + 0x2c], edx
mov ecx, dword [ebp - 0x1a4]
cmp ecx, 0x20
jle 0x56f942
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x30
jmp 0x57065c
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], edx
xor ecx, ecx
mov dword [ebp - 0x198], ecx
jmp 0x56f8e1
mov eax, dword [ebp - 0x1a4]
push eax
mov edx, dword [ebp - 0x1b0]
add edx, 2
push edx
mov ecx, dword [ebp - 0x1ac]
push ecx
call sub.MSVCRT.DLL_memcmp
add esp, 0xc
mov dword [ebp - 0x1b8], eax
mov eax, dword [ebp - 0x1b8]
test eax, eax
jne 0x56f89c
mov edx, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1a4]
mov al, byte [edx + ecx + 2]
test al, al
jne 0x56f892
test byte [ebp - 0x46], 8
jne 0x56f89c
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x2b
jmp 0x57065c
mov dword [ebp - 0x1b8], 0xffffffff
mov ecx, dword [ebp - 0x1b8]
test ecx, ecx
jge 0x56f8d2
mov eax, dword [ebx + 0x28]
mov edx, dword [ebp - 0x198]
sub eax, edx
imul dword [ebx + 0x2c]
push eax
mov ecx, dword [ebp - 0x1b0]
push ecx
mov eax, dword [ebp - 0x1b0]
mov edx, dword [ebx + 0x2c]
add eax, edx
push eax
call sub.MSVCRT.DLL_memmove
add esp, 0xc
jmp 0x56f8f2
mov ecx, dword [ebx + 0x2c]
add dword [ebp - 0x1b0], ecx
inc dword [ebp - 0x198]
mov eax, dword [ebp - 0x198]
mov edx, dword [ebx + 0x28]
cmp eax, edx
jl 0x56f83a
mov ecx, dword [ebx + 0x30]
mov eax, dword [ebp - 0x1b0]
inc ecx
sar ecx, 8
mov byte [eax], cl
mov dl, byte [ebx + 0x30]
mov ecx, dword [ebp - 0x1b0]
inc edx
and dl, 0xff
mov byte [ecx + 1], dl
mov eax, dword [ebp - 0x1a4]
push eax
mov edx, dword [ebp - 0x1ac]
push edx
mov ecx, dword [ebp - 0x1b0]
add ecx, 2
push ecx
call sub.MSVCRT.DLL_memcpy
mov eax, dword [ebp - 0x1b0]
mov edx, dword [ebp - 0x1a4]
add esp, 0xc
mov byte [eax + edx + 2], 0
inc dword [ebp - 0x68]
inc dword [ebx + 0x28]
jmp 0x56ff10
mov dword [ebp - 0xcc], 0x29
mov dword [ebp - 0xa4], 1
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], ecx
jmp 0x56f972
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 0x10
jne 0x56f96f
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x1ac]
sub eax, edx
mov dword [ebp - 0x1a4], eax
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x56f9f7
mov eax, dword [ebp - 0x1a4]
test eax, eax
jne 0x56f9b2
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3e
jmp 0x57065c
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebp - 0xcc]
cmp eax, edx
je 0x56f9d1
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x2a
jmp 0x57065c
mov eax, dword [ebp - 0x1a4]
cmp eax, 0x20
jle 0x56f9ea
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x30
jmp 0x57065c
xor ecx, ecx
mov dword [ebp - 0xb8], ecx
jmp 0x56fac3
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], eax
xor edx, edx
mov dword [ebp - 0x198], edx
jmp 0x56fa51
mov ecx, dword [ebp - 0x1a4]
push ecx
mov eax, dword [ebp - 0x1b0]
add eax, 2
push eax
mov edx, dword [ebp - 0x1ac]
push edx
call sub.MSVCRT.DLL_strncmp
add esp, 0xc
test eax, eax
jne 0x56fa42
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1a4]
mov dl, byte [ecx + eax + 2]
test dl, dl
je 0x56fa5e
mov ecx, dword [ebx + 0x2c]
add dword [ebp - 0x1b0], ecx
inc dword [ebp - 0x198]
mov eax, dword [ebp - 0x198]
mov edx, dword [ebx + 0x28]
cmp eax, edx
jl 0x56fa0a
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebx + 0x28]
cmp ecx, eax
jge 0x56fa8d
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1b0]
xor ecx, ecx
mov cl, byte [edx]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 1]
or ecx, edx
mov dword [ebp - 0xb8], ecx
jmp 0x56fac3
test byte [ebp - 0x48], 8
setne cl
and ecx, 1
push ecx
mov ecx, dword [ebp - 0x1a4]
mov edx, dword [ebp - 0x1ac]
mov eax, ebx
call fcn.0056b25c
mov dword [ebp - 0xb8], eax
test eax, eax
jg 0x56fac3
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x57065c
mov ecx, dword [ebp - 0xa4]
test ecx, ecx
jne 0x56fc0b
jmp 0x5703da
inc dword [ebp - 0x68]
mov dword [ebp - 0xcc], 0x29
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
mov dword [ebp - 0xbc], edx
cmp edx, 0x2b
jne 0x56fb16
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [eax]
test byte [ecx + 0x6991ed], 4
jne 0x56fb39
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3f
jmp 0x57065c
mov edx, dword [ebp - 0xbc]
cmp edx, 0x2d
jne 0x56fb39
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
test byte [eax + 0x6991ed], 4
je case.0x56f01f.34
inc dword [ebp - 0x68]
xor edx, edx
mov dword [ebp - 0xb8], edx
jmp 0x56fb63
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x68]
add ecx, ecx
xor edx, edx
mov dl, byte [eax]
lea ecx, [ecx + ecx*4]
add ecx, edx
add ecx, 0xffffffd0
mov dword [ebp - 0xb8], ecx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
test byte [eax + 0x6991ed], 4
jne 0x56fb43
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
je 0x56fb92
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x1d
jmp 0x57065c
mov ecx, dword [ebp - 0xbc]
cmp ecx, 0x2d
jne 0x56fbdf
mov eax, dword [ebp - 0xb8]
test eax, eax
jne 0x56fbb5
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3a
jmp 0x57065c
mov ecx, dword [ebx + 0x30]
mov eax, dword [ebp - 0xb8]
sub ecx, eax
inc ecx
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0xb8]
test edx, edx
jg 0x56fc0b
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0xf
jmp 0x57065c
mov eax, dword [ebp - 0xbc]
cmp eax, 0x2b
jne 0x56fc0b
mov edx, dword [ebp - 0xb8]
test edx, edx
jne 0x56fc02
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x3a
jmp 0x57065c
mov eax, dword [ebx + 0x30]
add dword [ebp - 0xb8], eax
mov dword [ebp - 0x70], esi
mov edx, dword [ebx + 0x14]
mov dword [ebp - 0x1bc], edx
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x56fcf6
mov byte [esi], 0
mov eax, dword [ebp - 0xb8]
test eax, eax
je 0x56fc46
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebx + 0x14]
call fcn.0056b5f0
mov dword [ebp - 0x1bc], eax
mov edx, dword [ebp - 0x1bc]
test edx, edx
jne 0x56fcb3
test byte [ebp - 0x48], 8
setne cl
and ecx, 1
xor edx, edx
push ecx
mov eax, ebx
mov ecx, dword [ebp - 0xb8]
call fcn.0056b25c
test eax, eax
jge 0x56fc7c
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xf
jmp 0x57065c
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0xb8]
add edx, ecx
lea eax, [esi + 4]
mov dword [ebp - 0x1bc], edx
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x20]
sub eax, edx
sar eax, 8
mov byte [ecx], al
lea eax, [esi + 4]
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x20]
sub eax, edx
and al, 0xff
mov byte [ecx + 1], al
add dword [ebx + 0x20], 2
jmp 0x56fcf6
mov eax, dword [ebp - 0x1bc]
xor edx, edx
mov ecx, dword [ebp - 0x1bc]
mov dl, byte [eax + 1]
xor eax, eax
shl edx, 8
mov al, byte [ecx + 2]
or edx, eax
jne 0x56fcf6
mov edx, dword [ebp - 0x80]
push edx
mov ecx, dword [ebp + 0x10]
mov edx, esi
mov eax, dword [ebp - 0x1bc]
call fcn.0056ba08
test eax, eax
je 0x56fcf6
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x28
jmp 0x57065c
mov byte [esi], 0x5d
mov byte [esi + 1], 0
mov byte [esi + 2], 6
add esi, 3
mov byte [esi], 0x52
mov eax, dword [ebp - 0x1bc]
mov edx, dword [ebx + 0x14]
sub eax, edx
sar eax, 8
mov byte [esi + 1], al
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x1bc]
sub ecx, eax
and cl, 0xff
mov byte [esi + 2], cl
add esi, 3
mov byte [esi], 0x55
mov byte [esi + 1], 0
mov byte [esi + 2], 6
mov dword [ebp - 0x50], 9
add esi, 3
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x570654
mov dword [ebp - 0x2c], 0xffffffff
jmp 0x570654
xor ecx, ecx
lea eax, [ebp - 0x19c]
mov dword [ebp - 0x1a0], ecx
mov dword [ebp - 0x19c], ecx
mov dword [ebp - 0x1a8], eax
jmp 0x56fe26
mov edx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x69
jg 0x56fd9f
je 0x56fdd0
sub eax, 0x2d
je 0x56fdb0
sub eax, 0x1d
je 0x56fdbe
sub eax, 0xb
je 0x56fdfc
sub eax, 3
je 0x56fe0a
jmp 0x56fe15
sub eax, 0x6d
je 0x56fddb
sub eax, 6
je 0x56fde6
sub eax, 5
je 0x56fdf1
jmp 0x56fe15
lea edx, [ebp - 0x1a0]
mov dword [ebp - 0x1a8], edx
jmp 0x56fe26
mov ecx, dword [ebp - 0x1a8]
or dword [ecx], 0x80000
or dword [ebx + 0x44], 0x10
jmp 0x56fe26
mov eax, dword [ebp - 0x1a8]
or dword [eax], 1
jmp 0x56fe26
mov edx, dword [ebp - 0x1a8]
or dword [edx], 2
jmp 0x56fe26
mov ecx, dword [ebp - 0x1a8]
or dword [ecx], 4
jmp 0x56fe26
mov eax, dword [ebp - 0x1a8]
or dword [eax], 8
jmp 0x56fe26
mov edx, dword [ebp - 0x1a8]
or dword [edx], 0x200
jmp 0x56fe26
mov ecx, dword [ebp - 0x1a8]
or dword [ecx], 0x40
jmp 0x56fe26
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xc
dec dword [ebp - 0x68]
jmp 0x57065c
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x29
je 0x56fe3e
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x3a
jne 0x56fd78
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x19c]
or ecx, eax
mov edx, dword [ebp - 0x1a0]
not edx
and ecx, edx
mov dword [ebp - 0xb4], ecx
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x29
jne 0x56fef5
mov edx, dword [ebx + 0x14]
add edx, 3
cmp esi, edx
jne 0x56fe8c
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x56fe81
mov eax, dword [ebp + 8]
mov edx, dword [eax]
cmp edx, 6
jne 0x56fe8c
mov ecx, dword [ebp - 0xb4]
mov dword [ebx + 0x40], ecx
jmp 0x56fedd
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0xb4]
and edx, 7
and eax, 7
cmp eax, edx
je 0x56feaf
mov byte [esi], 0x19
inc esi
mov cl, byte [ebp - 0xb4]
and cl, 7
mov byte [esi], cl
inc esi
test byte [ebp - 0xb3], 2
setne al
and eax, 1
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x24]
xor edx, 1
mov dword [ebp - 0x28], edx
test byte [ebp - 0xb4], 1
je 0x56fed8
mov ecx, pe_nt_image_headers32
jmp 0x56feda
xor ecx, ecx
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 4]
mov dword [edx], eax
xor ecx, ecx
mov dword [ebp - 0x70], ecx
jmp 0x570654
mov dword [ebp - 0x20], 0x5e
inc dword [ebp - 0x68]
jmp 0x56ff2f
test byte [ebp - 0x47], 0x10
je 0x56ff10
mov dword [ebp - 0x20], 0x5e
jmp 0x56ff2f
inc dword [ebx + 0x30]
mov eax, dword [ebx + 0x30]
sar eax, 8
mov byte [esi + 3], al
mov dl, byte [ebx + 0x30]
and dl, 0xff
mov byte [esi + 4], dl
mov dword [ebp - 0xc0], 2
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x5d
jl 0x56ff3b
mov eax, esi
jmp 0x56ff3d
xor eax, eax
mov dword [ebp - 0x70], eax
xor eax, eax
mov dl, byte [ebp - 0x20]
mov byte [esi], dl
mov dword [ebp - 0x5c], esi
mov ecx, dword [ebx + 0x48]
lea edx, [ebp - 0x68]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x50], eax
push edx
mov ecx, dword [ebp + 0x1c]
push ecx
mov eax, dword [ebp - 0x20]
cmp eax, 0x5a
je 0x56ff6f
mov edx, dword [ebp - 0x20]
cmp edx, 0x5b
je 0x56ff6f
xor ecx, ecx
jmp 0x56ff74
mov ecx, 1
push ecx
lea ecx, [ebp - 0xc8]
mov eax, dword [ebp - 0xa8]
push eax
lea eax, [ebp - 0xc4]
mov edx, dword [ebp - 0xc0]
push edx
push ecx
push eax
mov edx, dword [ebp + 0x10]
push edx
push ebx
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x56ffa1
xor eax, eax
jmp 0x56ffa4
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x5c]
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xb4]
and edx, 7
call fcn.00570678
test eax, eax
je 0x57065c
mov edx, dword [ebp - 0x20]
cmp edx, 0x60
jne 0x570072
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x570072
mov dword [ebp - 0x1c0], esi
xor eax, eax
mov dword [ebp - 0x1c4], eax
inc dword [ebp - 0x1c4]
xor ecx, ecx
mov edx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x1c0]
mov cl, byte [edx + 1]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 2]
or ecx, edx
add dword [ebp - 0x1c0], ecx
mov ecx, dword [ebp - 0x1c0]
mov al, byte [ecx]
cmp al, 0x55
jne 0x56ffe6
mov dl, byte [esi + 3]
cmp dl, 0x66
jne 0x570041
mov ecx, dword [ebp - 0x1c4]
dec ecx
jle 0x570038
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x36
jmp 0x57065c
mov dword [ebp - 0x20], 0x66
jmp 0x570072
mov edx, dword [ebp - 0x1c4]
cmp edx, 2
jle 0x57005a
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x1b
jmp 0x57065c
mov eax, dword [ebp - 0x1c4]
dec eax
jne 0x570072
or edx, 0xffffffff
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc8], edx
mov eax, dword [ebp - 0x68]
mov cl, byte [eax]
cmp cl, 0x29
je 0x57008a
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xe
jmp 0x57065c
mov edx, dword [ebp + 8]
test edx, edx
je 0x5700e1
mov ecx, dword [ebp + 8]
mov eax, 0x7fffffeb
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffffa
sub eax, edx
cmp eax, ecx
jge 0x5700b5
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x14
jmp 0x57065c
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x50]
add edx, 0xfffffffa
add dword [ecx], edx
mov byte [esi], 0x5e
inc esi
mov byte [esi], 0
mov byte [esi + 1], 3
add esi, 2
mov byte [esi], 0x55
inc esi
mov byte [esi], 0
mov byte [esi + 1], 3
add esi, 2
jmp 0x570654
mov esi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x20]
cmp eax, 0x66
je 0x570654
mov edx, dword [ebp - 0x30]
xor eax, eax
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x64], eax
mov edx, dword [ebp - 0x20]
cmp edx, 0x5d
jl 0x57017e
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x57013d
mov eax, dword [ebp - 0xc8]
test eax, eax
jl 0x57012d
mov edx, dword [ebp - 0xc8]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x64], 1
jmp 0x570134
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x38], 0xffffffff
jmp 0x570162
mov ecx, dword [ebp - 0xc8]
test ecx, ecx
jl 0x570162
mov eax, dword [ebp - 0xc4]
test eax, eax
jge 0x570162
mov edx, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0x44]
or edx, ecx
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xc4]
test eax, eax
jl 0x570654
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0x30], edx
jmp 0x570654
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x58
jne 0x570654
mov eax, dword [ebp - 0xc4]
test eax, eax
jl 0x570654
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0x30], edx
jmp 0x570654
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0x48]
push eax
push 0
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.0056a8a0
mov edi, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x57065c
test edi, edi
jge 0x5704e8
mov ecx, edi
neg ecx
cmp ecx, 0x1a
jne 0x57020a
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x5c
jne 0x5701fe
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 2]
cmp al, 0x45
jne 0x5701fe
add dword [ebp - 0x68], 2
jmp 0x570654
mov dword [ebp - 0x60], 1
jmp 0x570654
mov edx, edi
neg edx
cmp edx, 0x19
je 0x570654
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x570238
mov eax, edi
neg eax
cmp eax, 5
jle 0x570238
mov edx, edi
neg edx
cmp edx, 0x17
jge 0x570238
mov dword [ebp - 0x2c], 0xffffffff
mov ecx, dword [ebp - 0x2c]
mov edx, edi
neg edx
mov dword [ebp - 0x38], ecx
cmp edx, 0x1b
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
jne 0x570360
mov ecx, dword [ebx + 0x20]
mov dword [ebp - 0x78], ecx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x3c
jne 0x57026b
mov ecx, 0x3e
jmp 0x570270
mov ecx, 0x27
mov dword [ebp - 0xcc], ecx
xor eax, eax
mov dword [ebp - 0xc0], eax
xor edx, edx
mov dword [ebp - 0xa8], edx
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x2b
je 0x570326
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x2d
je 0x570326
mov dword [ebp - 0x1c8], 1
mov eax, dword [ebp - 0x68]
inc eax
jmp 0x5702d6
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 4
jne 0x5702c8
xor edx, edx
mov dword [ebp - 0x1c8], edx
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebx + 0xc]
test byte [edx + ecx], 0x10
je 0x5702ea
inc eax
mov cl, byte [eax]
test cl, cl
je 0x5702ea
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebp - 0xcc]
cmp edx, ecx
jne 0x5702b3
movzx eax, byte [eax]
mov edx, dword [ebp - 0xcc]
cmp eax, edx
je 0x570305
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x39
jmp 0x570654
mov ecx, dword [ebp - 0x1c8]
test ecx, ecx
je 0x570317
inc dword [ebp - 0x68]
jmp 0x56fae3
mov dword [ebp - 0xa4], 1
jmp 0x56f961
mov eax, dword [ebp - 0x68]
add eax, 2
jmp 0x57032f
inc eax
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x6991ed], 4
jne 0x57032e
xor ecx, ecx
mov cl, byte [eax]
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
je 0x570358
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x39
jmp 0x570654
inc dword [ebp - 0x68]
jmp 0x56fae3
mov ecx, edi
neg ecx
cmp ecx, 0x1c
jne 0x5703c6
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x3c
je 0x570389
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x27
je 0x570389
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x7b
jne 0x5703c6
xor eax, eax
mov dword [ebp - 0xa4], eax
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x3c
jne 0x5703a5
mov eax, 0x3e
jmp 0x5703bb
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x27
jne 0x5703b6
mov eax, 0x27
jmp 0x5703bb
mov eax, 0x7d
mov dword [ebp - 0xcc], eax
jmp 0x56f961
mov edx, edi
neg edx
cmp edx, 0x1d
jl 0x57044b
neg edi
add edi, 0xffffffe3
mov dword [ebp - 0xb8], edi
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x5703e9
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x70], esi
mov byte [esi], 0x51
inc esi
mov eax, dword [ebp - 0xb8]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0xb8]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
mov ecx, dword [ebp - 0xb8]
cmp ecx, 0x20
jge 0x570424
mov ecx, dword [ebp - 0xb8]
mov eax, 1
shl eax, cl
jmp 0x570429
mov eax, 1
or dword [ebx + 0x3c], eax
mov edx, dword [ebp - 0xb8]
mov ecx, dword [ebx + 0x38]
cmp edx, ecx
jle 0x570654
mov eax, dword [ebp - 0xb8]
mov dword [ebx + 0x38], eax
jmp 0x570654
mov edx, edi
neg edx
cmp edx, 0xf
je 0x57045d
mov ecx, edi
neg ecx
cmp ecx, 0x10
jne 0x5704c1
mov eax, dword [ebp + 0x1c]
lea ecx, [ebp - 0x1d0]
push eax
lea eax, [ebp - 0x68]
lea edx, [ebp - 0x1cc]
call fcn.0056ac7c
mov dword [ebp - 0x1d4], eax
mov edx, dword [ebp - 0x1d4]
test edx, edx
jl 0x57065c
neg edi
cmp edi, 0x10
mov dword [ebp - 0x70], esi
sete cl
and ecx, 1
mov eax, dword [ebp - 0x1cc]
cmp ecx, eax
je 0x5704a5
mov dl, 0x10
jmp 0x5704a7
mov dl, 0xf
mov byte [esi], dl
inc esi
mov al, byte [ebp - 0x1d4]
mov byte [esi], al
inc esi
mov cl, byte [ebp - 0x1d0]
mov byte [esi], cl
inc esi
jmp 0x570654
mov eax, edi
neg eax
cmp eax, 5
jle 0x5704d7
mov edx, edi
neg edx
cmp edx, 0x17
jge 0x5704d7
mov ecx, esi
jmp 0x5704d9
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov eax, edi
neg al
mov byte [esi], al
inc esi
jmp 0x570654
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x570509
cmp edi, 0x7f
jle 0x570509
lea edx, [ebp - 0xd8]
mov eax, edi
call fcn.0057b4cc
mov dword [ebp - 0xd0], eax
jmp 0x57056f
mov ecx, edi
mov byte [ebp - 0xd8], cl
mov dword [ebp - 0xd0], 1
jmp 0x57056f
mov dword [ebp - 0xd0], 1
mov eax, edi
mov byte [ebp - 0xd8], al
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x57056f
cmp edi, 0xc0
jl 0x57056f
jmp 0x57055b
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0xd0]
mov al, byte [ecx]
mov byte [ebp + edx - 0xd8], al
inc dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
and eax, 0xc0
cmp eax, 0x80
je 0x570540
mov dword [ebp - 0x70], esi
test byte [ebp - 0x48], 1
je 0x57057c
mov dl, 0x1d
jmp 0x57057e
mov dl, 0x1c
mov byte [esi], dl
lea eax, [ebp - 0xd8]
mov dword [ebp - 0x1dc], eax
inc esi
mov edx, dword [ebp - 0xd0]
xor edi, edi
cmp edi, edx
jge 0x5705b5
mov ecx, dword [ebp - 0x1dc]
mov al, byte [ecx]
mov byte [esi], al
inc esi
inc edi
inc dword [ebp - 0x1dc]
mov edx, dword [ebp - 0xd0]
cmp edi, edx
jl 0x570599
mov cl, byte [ebp - 0xd8]
cmp cl, 0xd
je 0x5705ca
mov al, byte [ebp - 0xd8]
cmp al, 0xa
jne 0x5705ce
or dword [ebx + 0x44], 0x20
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x570626
mov dword [ebp - 0x38], 0xffffffff
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0xd0]
dec eax
je 0x5705f3
mov edx, dword [ebp - 0x3c]
test edx, edx
jne 0x57061b
xor ecx, ecx
mov cl, byte [ebp - 0xd8]
mov eax, dword [ebp - 0x3c]
or ecx, eax
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0xd0]
dec edx
je 0x570654
xor ecx, ecx
mov cl, byte [esi - 1]
mov eax, dword [ebx + 0x48]
or ecx, eax
mov dword [ebp - 0x30], ecx
jmp 0x570654
or edx, 0xffffffff
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
jmp 0x570654
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0xd0]
dec eax
je 0x570642
mov edx, dword [ebp - 0x3c]
test edx, edx
jne 0x570654
xor ecx, ecx
mov cl, byte [esi - 1]
mov eax, dword [ebp - 0x3c]
or ecx, eax
mov edx, dword [ebx + 0x48]
or ecx, edx
mov dword [ebp - 0x30], ecx
inc dword [ebp - 0x68]
jmp 0x56c7ef
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x68]
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18