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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffde8
xor eax, eax
xor edx, edx
xor ecx, ecx
push ebx
push esi
push edi
mov ebx, dword [ebp + 0x24]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp + 8]
xor edx, edx
mov eax, dword [ecx]
xor ecx, ecx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x44], ecx
xor edx, edx
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
xor eax, eax
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x58], edx
mov ecx, dword [ebp + 0x10]
xor eax, eax
xor edx, edx
mov ecx, dword [ecx]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x68], edx
xor ecx, ecx
mov dword [ebp - 0x6c], ecx
test byte [ebp - 0x3b], 8
setne al
and eax, 1
mov dword [ebp - 0x74], eax
mov eax, 0xfffffffe
test byte [ebp - 0x3b], 2
setne dl
and edx, 1
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 0x18]
xor ecx, 1
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
test byte [ebp - 0x3c], 1
je 0x5dbc11
mov edx, pe_nt_image_headers32
jmp 0x5dbc13
xor edx, edx
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x5c]
cmp dword [ebp + 0x28], 0
movzx edi, byte [eax]
je 0x5dbcaf
mov eax, dword [ebx + 0x10]
add eax, 0x1000
cmp esi, eax
jbe 0x5dbc40
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x34
jmp 0x5df966
cmp esi, dword [ebp - 0x48]
jae 0x5dbc48
mov esi, dword [ebp - 0x48]
mov eax, dword [ebp + 0x28]
mov ecx, esi
mov edx, 0x7fffffeb
sub edx, dword [eax]
sub ecx, dword [ebp - 0x48]
cmp edx, ecx
jge 0x5dbc69
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x5df966
mov edx, esi
mov ecx, dword [ebp + 0x28]
sub edx, dword [ebp - 0x48]
add dword [ecx], edx
cmp dword [ebp - 0x64], 0
je 0x5dbca7
mov ecx, dword [ebp - 0x64]
cmp ecx, dword [ebp - 0x4c]
jbe 0x5dbcaa
mov eax, esi
sub eax, dword [ebp - 0x64]
push eax
mov edx, dword [ebp - 0x64]
push edx
mov ecx, dword [ebp - 0x4c]
push ecx
call sub.msvcrt.dll_memmove
mov eax, dword [ebp - 0x64]
add esp, 0xc
sub eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x64], edx
sub esi, eax
jmp 0x5dbcaa
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x48], esi
jmp 0x5dbcca
mov eax, dword [ebx + 0x10]
add eax, 0x1000
cmp eax, dword [ebx + 0x20]
jae 0x5dbcca
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x34
jmp 0x5df966
cmp dword [ebp - 0x54], 0
je 0x5dbd38
test edi, edi
je 0x5dbd38
cmp edi, 0x5c
jne 0x5dbcf4
mov ecx, dword [ebp - 0x5c]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x45
jne 0x5dbcf4
xor eax, eax
mov dword [ebp - 0x54], eax
inc dword [ebp - 0x5c]
jmp 0x5df95e
cmp dword [ebp - 0x68], 0
je 0x5dbd16
cmp dword [ebp + 0x28], 0
jne 0x5dbd11
push ebx
mov edx, dword [ebp - 0x5c]
push edx
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.005db088
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x68], eax
test byte [ebp - 0x3b], 0x40
je 0x5df831
mov dword [ebp - 0x68], esi
push ebx
mov edx, dword [ebp - 0x5c]
push edx
push esi
call fcn.005db050
add esp, 0xc
mov esi, eax
jmp 0x5df831
cmp edi, 0x2a
je 0x5dbd5f
cmp edi, 0x2b
je 0x5dbd5f
cmp edi, 0x3f
je 0x5dbd5f
cmp edi, 0x7b
jne 0x5dbd5b
mov ecx, dword [ebp - 0x5c]
inc ecx
push ecx
call fcn.005da200
pop ecx
test eax, eax
jne 0x5dbd5f
xor eax, eax
jmp 0x5dbd64
mov eax, 1
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0
jne 0x5dbda0
cmp dword [ebp - 0x68], 0
je 0x5dbda0
mov edx, dword [ebp - 0x40]
add dword [ebp - 0x40], 0xffffffff
test edx, edx
jg 0x5dbda0
cmp dword [ebp + 0x28], 0
jne 0x5dbd9b
push ebx
mov ecx, dword [ebp - 0x5c]
push ecx
mov eax, dword [ebp - 0x68]
push eax
call fcn.005db088
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x68], edx
test byte [ebp - 0x3c], 8
je 0x5dbe50
mov ecx, dword [ebx + 0xc]
test byte [ecx + edi], 1
jne 0x5df95e
cmp edi, 0x23
jne 0x5dbe50
jmp 0x5dbe37
cmp dword [ebx + 0x50], 0
je 0x5dbdfb
mov eax, dword [ebx + 0x1c]
cmp eax, dword [ebp - 0x5c]
jbe 0x5dbdf0
mov edx, dword [ebp - 0x74]
lea ecx, [ebx + 0x54]
push edx
push ecx
mov eax, dword [ebx + 0x1c]
push eax
mov edx, dword [ebx + 0x50]
push edx
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.005e99c8
add esp, 0x14
test eax, eax
jne 0x5dbdf4
xor eax, eax
jmp 0x5dbe2a
mov eax, 1
jmp 0x5dbe2a
mov edx, dword [ebx + 0x1c]
sub edx, dword [ebx + 0x54]
cmp edx, dword [ebp - 0x5c]
jb 0x5dbe21
mov ecx, dword [ebp - 0x5c]
mov al, byte [ecx]
cmp al, byte [ebx + 0x58]
jne 0x5dbe21
cmp dword [ebx + 0x54], 1
je 0x5dbe25
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx + 1]
cmp cl, byte [ebx + 0x59]
je 0x5dbe25
xor eax, eax
jmp 0x5dbe2a
mov eax, 1
test eax, eax
je 0x5dbe37
mov edx, dword [ebx + 0x54]
dec edx
add dword [ebp - 0x5c], edx
jmp 0x5dbe42
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0
jne 0x5dbdc2
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0
jne 0x5df95e
xor edi, edi
test byte [ebp - 0x3b], 0x40
je 0x5dbe72
cmp dword [ebp - 0x94], 0
jne 0x5dbe72
mov dword [ebp - 0x68], esi
push ebx
mov eax, dword [ebp - 0x5c]
push eax
push esi
call fcn.005db050
add esp, 0xc
mov esi, eax
mov edx, edi
cmp edx, 0x3f
jg 0x5dbec0
je 0x5dd492
cmp edx, 0x29
jg 0x5dbea2
je 0x5dbef8
sub edx, 1
jb 0x5dbef8
sub edx, 0x23
je 0x5dbf6f
sub edx, 4
je 0x5de1c5
jmp 0x5df831
sub edx, 0x2a
je 0x5dd474
dec edx
je 0x5dd482
sub edx, 3
je 0x5dbf7d
jmp 0x5df831
cmp edx, 0x5e
jg 0x5dbee7
je 0x5dbf4e
sub edx, 0x5b
je 0x5dbfca
dec edx
je 0x5df4ae
dec edx
je 0x5dbfad
jmp 0x5df831
sub edx, 0x7b
je 0x5dd43d
dec edx
je 0x5dbef8
jmp 0x5df831
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ebp - 0x20]
mov dword [ecx], ebx
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x24]
mov dword [eax], edx
mov ecx, dword [ebp + 0xc]
mov dword [ecx], esi
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x5c]
mov dword [edi], eax
cmp dword [ebp + 0x28], 0
je 0x5dbf44
mov edx, dword [ebp + 0x28]
mov ebx, esi
mov ecx, 0x7fffffeb
sub ecx, dword [edx]
sub ebx, dword [ebp - 0x48]
cmp ecx, ebx
jge 0x5dbf3c
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x5df966
sub esi, dword [ebp - 0x48]
mov edx, dword [ebp + 0x28]
add dword [edx], esi
mov eax, 1
jmp 0x5df970
test byte [ebp - 0x3c], 2
je 0x5dbf61
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5dbf61
mov dword [ebp - 0x20], 0xffffffff
xor edx, edx
mov dword [ebp - 0x64], edx
mov byte [esi], 0x1a
inc esi
jmp 0x5df95e
xor ecx, ecx
mov dword [ebp - 0x64], ecx
mov byte [esi], 0x1b
inc esi
jmp 0x5df95e
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5dbf8a
mov dword [ebp - 0x20], 0xffffffff
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x64], esi
test byte [ebp - 0x3c], 4
je 0x5dbfa3
mov dl, 0xd
jmp 0x5dbfa5
mov dl, 0xc
mov byte [esi], dl
inc esi
jmp 0x5df95e
test byte [ebx + 0x43], 2
je 0x5df831
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x40
jmp 0x5df966
mov dword [ebp - 0x64], esi
mov ecx, dword [ebp - 0x5c]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x3a
je 0x5dbff3
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2e
je 0x5dbff3
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3d
jne 0x5dc02a
lea edx, [ebp - 0x60]
push edx
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.005daf00
add esp, 8
test eax, eax
je 0x5dc02a
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3a
jne 0x5dc01b
mov eax, 0xd
jmp 0x5dc020
mov eax, 0x1f
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
jmp 0x5df966
xor ecx, ecx
mov dword [ebp - 0x88], ecx
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
movzx edi, byte [ecx]
cmp edi, 0x5c
jne 0x5dc070
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x45
jne 0x5dc052
inc dword [ebp - 0x5c]
jmp 0x5dc032
push 3
push 0x673625
mov ecx, dword [ebp - 0x5c]
inc ecx
push ecx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5dc08a
add dword [ebp - 0x5c], 3
jmp 0x5dc032
cmp dword [ebp - 0x88], 0
jne 0x5dc08a
cmp edi, 0x5e
jne 0x5dc08a
mov dword [ebp - 0x88], 1
jmp 0x5dc032
cmp edi, 0x5d
jne 0x5dc0bf
test byte [ebx + 0x43], 2
je 0x5dc0bf
cmp dword [ebp - 0x88], 0
je 0x5dc0a2
mov cl, 0xd
jmp 0x5dc0a4
mov cl, 0x6d
mov byte [esi], cl
inc esi
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5dc0b4
mov dword [ebp - 0x20], 0xffffffff
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
jmp 0x5df95e
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0xa4], 0xffffffff
push 0x20
lea eax, [ebp - 0x1f0]
push 0
push eax
call sub.msvcrt.dll_memset
xor edx, edx
lea ecx, [esi + 4]
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x78], ecx
mov eax, dword [ebp - 0x78]
add esp, 0xc
test edi, edi
mov dword [ebp - 0x7c], eax
je 0x5dd253
cmp dword [ebp - 0x74], 0
je 0x5dc1c8
cmp edi, 0x7f
jle 0x5dc1c8
mov edx, dword [ebp - 0x5c]
movzx edi, byte [edx]
cmp edi, 0xc0
jl 0x5dc1c8
mov eax, edi
and eax, 0x3f
xor edx, edx
mov dl, byte [eax + 0x673a7c]
mov dword [ebp - 0xd8], edx
mov ecx, dword [ebp - 0xd8]
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0xdc], ecx
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xd8]
and edi, dword [eax*4 + 0x6736c0]
shl edi, cl
mov dword [ebp - 0xd4], 1
mov edx, dword [ebp - 0x5c]
lea ecx, [edx + 1]
mov dword [ebp - 0x1cc], ecx
mov eax, dword [ebp - 0xd4]
cmp eax, dword [ebp - 0xd8]
jg 0x5dc1bf
sub dword [ebp - 0xdc], 6
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x1cc]
xor edx, edx
mov dl, byte [eax]
and edx, 0x3f
shl edx, cl
or edi, edx
inc dword [ebp - 0xd4]
inc dword [ebp - 0x1cc]
mov ecx, dword [ebp - 0xd4]
cmp ecx, dword [ebp - 0xd8]
jle 0x5dc187
mov eax, dword [ebp - 0xd8]
add dword [ebp - 0x5c], eax
cmp dword [ebp + 0x28], 0
je 0x5dc1df
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp + 0x28]
sub edx, dword [ebp - 0x7c]
add dword [eax], edx
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0x78], edx
cmp dword [ebp - 0x54], 0
je 0x5dc210
cmp edi, 0x5c
jne 0x5dccad
mov ecx, dword [ebp - 0x5c]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x45
jne 0x5dccad
xor eax, eax
mov dword [ebp - 0x54], eax
inc dword [ebp - 0x5c]
jmp 0x5dd233
cmp edi, 0x5b
jne 0x5dc4c0
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3a
je 0x5dc244
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2e
je 0x5dc244
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3d
jne 0x5dc4c0
lea edx, [ebp - 0x60]
push edx
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.005daf00
add esp, 8
test eax, eax
je 0x5dc4c0
xor eax, eax
mov dword [ebp - 0xe0], eax
mov edx, dword [ebx + 8]
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3a
je 0x5dc288
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x1f
jmp 0x5df966
add dword [ebp - 0x5c], 2
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5e
jne 0x5dc2af
mov dword [ebp - 0xe0], 1
mov dword [ebp - 0x8c], 1
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x60]
sub edx, dword [ebp - 0x5c]
push edx
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.005daf60
add esp, 8
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xe4], 0
jge 0x5dc2df
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1e
jmp 0x5df966
test byte [ebp - 0x3c], 1
je 0x5dc2f6
cmp dword [ebp - 0xe4], 2
jg 0x5dc2f6
xor edx, edx
mov dword [ebp - 0xe4], edx
mov ecx, dword [ebp - 0xe4]
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0xe4], ecx
push 0x20
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax*4 + 0x672acc]
add edx, dword [ebp - 0xf0]
push edx
lea ecx, [ebp - 0x210]
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax*4 + 0x672ad0]
mov dword [ebp - 0xe8], edx
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ecx*4 + 0x672ad4]
mov dword [ebp - 0xec], eax
cmp dword [ebp - 0xe8], 0
jl 0x5dc3f4
cmp dword [ebp - 0xec], 0
jl 0x5dc3ad
xor edi, edi
lea eax, [ebp - 0x210]
mov dword [ebp - 0x1d0], eax
mov edx, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xe8]
lea ecx, [edx + ecx]
mov dword [ebp - 0x1cc], ecx
mov eax, dword [ebp - 0x1cc]
mov dl, byte [eax]
mov eax, dword [ebp - 0x1d0]
or byte [eax], dl
inc edi
inc dword [ebp - 0x1d0]
inc dword [ebp - 0x1cc]
cmp edi, 0x20
jl 0x5dc389
jmp 0x5dc3f4
xor edi, edi
lea eax, [ebp - 0x210]
mov dword [ebp - 0x1cc], eax
mov edx, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xe8]
lea ecx, [edx + ecx]
mov dword [ebp - 0x1d0], ecx
mov eax, dword [ebp - 0x1d0]
inc edi
mov dl, byte [eax]
mov eax, dword [ebp - 0x1cc]
not dl
and byte [eax], dl
inc dword [ebp - 0x1cc]
inc dword [ebp - 0x1d0]
cmp edi, 0x20
jl 0x5dc3d0
cmp dword [ebp - 0xec], 0
jge 0x5dc403
neg dword [ebp - 0xec]
cmp dword [ebp - 0xec], 1
jne 0x5dc415
and byte [ebp - 0x20f], 0xc3
jmp 0x5dc425
cmp dword [ebp - 0xec], 2
jne 0x5dc425
and byte [ebp - 0x205], 0x7f
cmp dword [ebp - 0xe0], 0
je 0x5dc46e
xor edi, edi
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x1d0], eax
lea edx, [ebp - 0x210]
mov dword [ebp - 0x1cc], edx
mov ecx, dword [ebp - 0x1cc]
mov eax, dword [ebp - 0x1d0]
inc edi
mov cl, byte [ecx]
not cl
or byte [eax], cl
inc dword [ebp - 0x1d0]
inc dword [ebp - 0x1cc]
cmp edi, 0x20
jl 0x5dc448
jmp 0x5dc4aa
xor edi, edi
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x1cc], eax
lea edx, [ebp - 0x210]
mov dword [ebp - 0x1d0], edx
mov ecx, dword [ebp - 0x1d0]
mov eax, dword [ebp - 0x1cc]
inc edi
mov cl, byte [ecx]
or byte [eax], cl
inc dword [ebp - 0x1cc]
inc dword [ebp - 0x1d0]
cmp edi, 0x20
jl 0x5dc488
mov edx, dword [ebp - 0x60]
inc edx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0xa0], 0xa
jmp 0x5dd233
cmp edi, 0x5c
jne 0x5dccad
push 1
mov ecx, dword [ebp - 0x3c]
push ecx
mov eax, dword [ebx + 0x30]
push eax
mov edx, dword [ebp + 0x14]
push edx
lea ecx, [ebp - 0x5c]
push ecx
call fcn.005d9d08
add esp, 0x14
mov edi, eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x5df966
mov edx, edi
neg edx
cmp edx, 5
jne 0x5dc501
mov edi, 8
jmp 0x5dc568
mov eax, edi
neg eax
cmp eax, 0x16
jne 0x5dc511
mov edi, 0x58
jmp 0x5dc568
mov eax, edi
neg eax
cmp eax, 0x11
jne 0x5dc521
mov edi, 0x52
jmp 0x5dc568
mov eax, edi
neg eax
cmp eax, 0x1a
jne 0x5dc55b
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x5c
jne 0x5dc54d
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x45
jne 0x5dc54d
add dword [ebp - 0x5c], 2
jmp 0x5dd233
mov dword [ebp - 0x54], 1
jmp 0x5dd233
mov edx, edi
neg edx
cmp edx, 0x19
je 0x5dd233
test edi, edi
jge 0x5dccad
mov ecx, dword [ebx + 8]
mov dword [ebp - 0xf4], ecx
add dword [ebp - 0xa0], 2
cmp dword [ebp + 0x28], 0
jne 0x5dc789
mov eax, edi
neg eax
add eax, 0xfffffffa
cmp eax, 5
ja case.default.0x5dc59a
jmp dword [eax*4 + 0x5dc5a1]
xor edi, edi
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x1d0], eax
mov edx, dword [ebp - 0xf4]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1cc], ecx
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x1d0]
inc edi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1d0]
inc dword [ebp - 0x1cc]
cmp edi, 0x20
jl 0x5dc5d6
jmp 0x5dd233
mov dword [ebp - 0x8c], 1
xor edi, edi
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x1cc], eax
mov edx, dword [ebp - 0xf4]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1d0], ecx
mov ecx, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1cc]
inc edi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1cc]
inc dword [ebp - 0x1d0]
cmp edi, 0x20
jl 0x5dc624
jmp 0x5dd233
xor edi, edi
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x1d0], eax
mov edx, dword [ebp - 0xf4]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1cc], ecx
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x1d0]
inc edi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1d0]
inc dword [ebp - 0x1cc]
cmp edi, 0x20
jl 0x5dc66d
jmp 0x5dd233
mov dword [ebp - 0x8c], 1
xor edi, edi
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x1cc], eax
mov edx, dword [ebp - 0xf4]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1d0], ecx
mov ecx, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1cc]
inc edi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1cc]
inc dword [ebp - 0x1d0]
cmp edi, 0x20
jl 0x5dc6be
jmp 0x5dd233
xor edi, edi
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x1d0], eax
mov edx, dword [ebp - 0xf4]
mov ecx, edx
mov dword [ebp - 0x1cc], ecx
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x1d0]
inc edi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1d0]
inc dword [ebp - 0x1cc]
cmp edi, 0x20
jl 0x5dc703
and byte [ebp - 0x1ef], 0xf7
jmp 0x5dd233
mov dword [ebp - 0x8c], 1
xor edi, edi
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x1cc], eax
mov edx, dword [ebp - 0xf4]
mov ecx, edx
mov dword [ebp - 0x1d0], ecx
mov ecx, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1cc]
inc edi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1cc]
inc dword [ebp - 0x1d0]
cmp edi, 0x20
jl 0x5dc757
or byte [ebp - 0x1ef], 8
jmp 0x5dd233
cmp edi, 0xfffffff9
je 0x5dd233
cmp edi, 0xfffffffa
je 0x5dd233
cmp edi, 0xfffffff5
je 0x5dd233
cmp edi, 0xfffffff6
je 0x5dd233
cmp edi, 0xfffffff7
je 0x5dd233
cmp edi, 0xfffffff8
je 0x5dd233
mov ecx, edi
neg ecx
cmp ecx, 0x13
jne 0x5dc8b9
or byte [ebp - 0x1ef], 2
or byte [ebp - 0x1ec], 1
or byte [ebp - 0x1dc], 1
cmp dword [ebp - 0x74], 0
je 0x5dd233
mov dword [ebp - 0x70], 1
mov eax, dword [ebp - 0x78]
mov byte [eax], 1
inc dword [ebp - 0x78]
mov edx, dword [ebp - 0x78]
push edx
push 0x1680
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
mov byte [ecx], 1
inc dword [ebp - 0x78]
mov eax, dword [ebp - 0x78]
push eax
push 0x180e
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov edx, dword [ebp - 0x78]
mov byte [edx], 2
inc dword [ebp - 0x78]
mov ecx, dword [ebp - 0x78]
push ecx
push 0x2000
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
push eax
push 0x200a
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov edx, dword [ebp - 0x78]
mov byte [edx], 1
inc dword [ebp - 0x78]
mov ecx, dword [ebp - 0x78]
push ecx
push 0x202f
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov byte [eax], 1
inc dword [ebp - 0x78]
mov edx, dword [ebp - 0x78]
push edx
push 0x205f
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
mov byte [ecx], 1
inc dword [ebp - 0x78]
mov eax, dword [ebp - 0x78]
push eax
push 0x3000
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
jmp 0x5dd233
mov edx, edi
neg edx
cmp edx, 0x12
jne 0x5dca8f
xor edi, edi
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0xf8], 0xff
mov edx, edi
dec edx
je 0x5dc8ef
sub edx, 3
je 0x5dc8f8
sub edx, 0x10
je 0x5dc901
jmp 0x5dc908
xor dword [ebp - 0xf8], 2
jmp 0x5dc908
xor dword [ebp - 0xf8], 1
jmp 0x5dc908
xor dword [ebp - 0xf8], 1
mov cl, byte [ebp - 0xf8]
mov eax, dword [ebp - 0x1cc]
or byte [eax], cl
inc edi
inc dword [ebp - 0x1cc]
cmp edi, 0x20
jl 0x5dc8d4
cmp dword [ebp - 0x74], 0
je 0x5dd233
mov dword [ebp - 0x70], 1
mov edx, dword [ebp - 0x78]
mov byte [edx], 2
inc dword [ebp - 0x78]
mov ecx, dword [ebp - 0x78]
push ecx
push pe_nt_image_headers32
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x167f
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov byte [eax], 2
inc dword [ebp - 0x78]
mov edx, dword [ebp - 0x78]
push edx
push 0x1681
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x180d
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov byte [eax], 2
inc dword [ebp - 0x78]
mov edx, dword [ebp - 0x78]
push edx
push 0x180f
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x1fff
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov byte [eax], 2
inc dword [ebp - 0x78]
mov edx, dword [ebp - 0x78]
push edx
push 0x200b
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x202e
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov byte [eax], 2
inc dword [ebp - 0x78]
mov edx, dword [ebp - 0x78]
push edx
push 0x2030
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x205e
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov byte [eax], 2
inc dword [ebp - 0x78]
mov edx, dword [ebp - 0x78]
push edx
push 0x2060
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x2fff
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov byte [eax], 2
inc dword [ebp - 0x78]
mov edx, dword [ebp - 0x78]
push edx
push 0x3001
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x7fffffff
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
jmp 0x5dd233
mov eax, edi
neg eax
cmp eax, 0x15
jne 0x5dcb02
or byte [ebp - 0x1ef], 4
or byte [ebp - 0x1ef], 8
or byte [ebp - 0x1ef], 0x10
or byte [ebp - 0x1ef], 0x20
or byte [ebp - 0x1e0], 0x20
cmp dword [ebp - 0x74], 0
je 0x5dd233
mov dword [ebp - 0x70], 1
mov edx, dword [ebp - 0x78]
mov byte [edx], 2
inc dword [ebp - 0x78]
mov ecx, dword [ebp - 0x78]
push ecx
push 0x2028
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
push eax
push 0x2029
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
jmp 0x5dd233
mov edx, edi
neg edx
cmp edx, 0x14
jne 0x5dcbea
xor edi, edi
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0xfc], 0xff
mov edx, edi
dec edx
je 0x5dcb33
sub edx, 0xf
je 0x5dcb51
jmp 0x5dcb58
xor dword [ebp - 0xfc], 4
xor dword [ebp - 0xfc], 8
xor dword [ebp - 0xfc], 0x10
xor dword [ebp - 0xfc], 0x20
jmp 0x5dcb58
xor dword [ebp - 0xfc], 0x20
mov cl, byte [ebp - 0xfc]
mov eax, dword [ebp - 0x1cc]
or byte [eax], cl
inc edi
inc dword [ebp - 0x1cc]
cmp edi, 0x20
jl 0x5dcb1d
cmp dword [ebp - 0x74], 0
je 0x5dd233
mov dword [ebp - 0x70], 1
mov edx, dword [ebp - 0x78]
mov byte [edx], 2
inc dword [ebp - 0x78]
mov ecx, dword [ebp - 0x78]
push ecx
push pe_nt_image_headers32
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x2027
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov byte [eax], 2
inc dword [ebp - 0x78]
mov edx, dword [ebp - 0x78]
push edx
push 0x2029
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x7fffffff
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
jmp 0x5dd233
mov eax, edi
neg eax
cmp eax, 0x10
je 0x5dcc00
mov edx, edi
neg edx
cmp edx, 0xf
jne 0x5dcc81
mov ecx, dword [ebp + 0x14]
push ecx
lea eax, [ebp - 0x104]
push eax
lea edx, [ebp - 0x100]
push edx
lea ecx, [ebp - 0x5c]
push ecx
call fcn.005da0e0
add esp, 0x10
mov dword [ebp - 0x108], eax
cmp dword [ebp - 0x108], 0
jl 0x5df966
mov dword [ebp - 0x70], 1
neg edi
cmp edi, 0x10
sete al
and eax, 1
cmp eax, dword [ebp - 0x100]
je 0x5dcc4f
mov dl, 3
jmp 0x5dcc51
mov dl, 4
mov eax, dword [ebp - 0x78]
mov byte [eax], dl
inc dword [ebp - 0x78]
mov cl, byte [ebp - 0x108]
mov edi, dword [ebp - 0x78]
mov byte [edi], cl
inc dword [ebp - 0x78]
mov al, byte [ebp - 0x104]
mov edx, dword [ebp - 0x78]
mov byte [edx], al
inc dword [ebp - 0x78]
sub dword [ebp - 0xa0], 2
jmp 0x5dd233
test byte [ebp - 0x3c], 0x40
je 0x5dcc95
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 7
jmp 0x5df966
sub dword [ebp - 0xa0], 2
mov ecx, dword [ebp - 0x5c]
movzx edi, byte [ecx]
jmp 0x5dccad
xor eax, eax
mov dword [ebp - 0x54], eax
add dword [ebp - 0x5c], 2
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x5c
jne 0x5dccc7
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x45
je 0x5dcca4
mov edx, dword [ebp - 0x5c]
cmp edi, 0xd
mov dword [ebp - 0xd0], edx
je 0x5dccda
cmp edi, 0xa
jne 0x5dccde
or dword [ebx + 0x44], 0x20
cmp dword [ebp - 0x54], 0
jne 0x5dd12d
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x2d
jne 0x5dd12d
add dword [ebp - 0x5c], 2
jmp 0x5dcd03
add dword [ebp - 0x5c], 2
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5c
jne 0x5dcd4a
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x45
je 0x5dccff
jmp 0x5dcd4a
add dword [ebp - 0x5c], 2
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5c
jne 0x5dcd41
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x45
jne 0x5dcd41
add dword [ebp - 0x5c], 2
jmp 0x5dcd4a
mov dword [ebp - 0x54], 1
jmp 0x5dcd63
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5c
jne 0x5dcd63
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x51
je 0x5dcd1e
mov edx, dword [ebp - 0x5c]
cmp byte [edx], 0
je 0x5dcd7d
cmp dword [ebp - 0x54], 0
jne 0x5dcd8b
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5d
jne 0x5dcd8b
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0x5c], edx
jmp 0x5dd12d
cmp dword [ebp - 0x74], 0
je 0x5dce57
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x10c], 0xc0
jl 0x5dce64
mov edx, dword [ebp - 0x10c]
and edx, 0x3f
xor ecx, ecx
mov cl, byte [edx + 0x673a7c]
mov dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x114]
add eax, eax
lea eax, [eax + eax*2]
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x114]
mov edx, dword [eax*4 + 0x6736c0]
and edx, dword [ebp - 0x10c]
shl edx, cl
mov dword [ebp - 0x10c], edx
mov dword [ebp - 0x110], 1
mov ecx, dword [ebp - 0x110]
cmp ecx, dword [ebp - 0x114]
jg 0x5dce4c
sub dword [ebp - 0x118], 6
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x118]
movzx eax, byte [eax + edx]
and eax, 0x3f
shl eax, cl
or dword [ebp - 0x10c], eax
inc dword [ebp - 0x110]
mov edx, dword [ebp - 0x110]
cmp edx, dword [ebp - 0x114]
jle 0x5dce13
mov ecx, dword [ebp - 0x114]
add dword [ebp - 0x5c], ecx
jmp 0x5dce64
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x54], 0
jne 0x5dcefd
cmp dword [ebp - 0x10c], 0x5c
jne 0x5dcefd
push 1
mov edx, dword [ebp - 0x3c]
push edx
mov ecx, dword [ebx + 0x30]
push ecx
mov eax, dword [ebp + 0x14]
push eax
lea edx, [ebp - 0x5c]
push edx
call fcn.005d9d08
add esp, 0x14
mov dword [ebp - 0x10c], eax
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0
jne 0x5df966
cmp dword [ebp - 0x10c], 0
jge 0x5dcefd
cmp dword [ebp - 0x10c], 0xfffffffb
jne 0x5dcec5
mov dword [ebp - 0x10c], 8
jmp 0x5dcefd
cmp dword [ebp - 0x10c], 0xffffffea
jne 0x5dceda
mov dword [ebp - 0x10c], 0x58
jmp 0x5dcefd
cmp dword [ebp - 0x10c], 0xffffffef
jne 0x5dceef
mov dword [ebp - 0x10c], 0x52
jmp 0x5dcefd
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x5c], eax
jmp 0x5dd12d
cmp edi, dword [ebp - 0x10c]
jle 0x5dcf13
mov edx, dword [ebp + 0x14]
mov dword [edx], 8
jmp 0x5df966
cmp edi, dword [ebp - 0x10c]
je 0x5dd12d
cmp dword [ebp - 0x10c], 0xd
je 0x5dcf31
cmp dword [ebp - 0x10c], 0xa
jne 0x5dcf35
or dword [ebx + 0x44], 0x20
cmp dword [ebp - 0x74], 0
je 0x5dd09a
cmp dword [ebp - 0x10c], 0xff
jg 0x5dcf62
test byte [ebp - 0x3c], 1
je 0x5dd09a
cmp dword [ebp - 0x10c], 0x7f
jle 0x5dd09a
mov dword [ebp - 0x70], 1
test byte [ebp - 0x3c], 1
je 0x5dd066
mov dword [ebp - 0x124], edi
mov ecx, dword [ebp - 0x10c]
mov dword [ebp - 0x128], ecx
jmp 0x5dd03a
mov eax, dword [ebp - 0x11c]
cmp eax, edi
jb 0x5dcfa6
mov edx, dword [ebp - 0x120]
cmp edx, dword [ebp - 0x10c]
jbe 0x5dd03a
cmp edi, dword [ebp - 0x11c]
jbe 0x5dcfc1
mov ecx, edi
dec ecx
cmp ecx, dword [ebp - 0x120]
ja 0x5dcfc1
mov edi, dword [ebp - 0x11c]
jmp 0x5dd03a
mov eax, dword [ebp - 0x10c]
cmp eax, dword [ebp - 0x120]
jae 0x5dcfec
mov edx, dword [ebp - 0x10c]
inc edx
cmp edx, dword [ebp - 0x11c]
jb 0x5dcfec
mov ecx, dword [ebp - 0x120]
mov dword [ebp - 0x10c], ecx
jmp 0x5dd03a
mov ecx, dword [ebp - 0x11c]
cmp ecx, dword [ebp - 0x120]
jne 0x5dd005
mov eax, dword [ebp - 0x78]
mov byte [eax], 1
inc dword [ebp - 0x78]
jmp 0x5dd024
mov edx, dword [ebp - 0x78]
mov byte [edx], 2
inc dword [ebp - 0x78]
mov ecx, dword [ebp - 0x78]
push ecx
mov eax, dword [ebp - 0x11c]
push eax
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov edx, dword [ebp - 0x78]
push edx
mov ecx, dword [ebp - 0x120]
push ecx
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
lea eax, [ebp - 0x120]
lea edx, [ebp - 0x11c]
push eax
push edx
mov ecx, dword [ebp - 0x128]
lea eax, [ebp - 0x124]
push ecx
push eax
call fcn.005db0c0
add esp, 0x10
test eax, eax
jne 0x5dcf8a
mov edx, dword [ebp - 0x78]
mov byte [edx], 2
inc dword [ebp - 0x78]
mov ecx, dword [ebp - 0x78]
push ecx
push edi
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
push eax
mov edx, dword [ebp - 0x10c]
push edx
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
jmp 0x5dd233
mov ecx, dword [ebp - 0x10c]
sub ecx, edi
inc ecx
add dword [ebp - 0xa0], ecx
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0xa4], eax
cmp dword [ebp + 0x28], 0
jne 0x5dd233
cmp edi, dword [ebp - 0x10c]
jg 0x5dd233
mov ecx, edi
mov al, 1
and ecx, 7
mov edx, edi
shl al, cl
test edx, edx
jns 0x5dd0dd
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1f0], al
test byte [ebp - 0x3c], 1
je 0x5dd11f
mov ecx, dword [ebx + 4]
xor eax, eax
mov al, byte [ecx + edi]
mov dword [ebp - 0x12c], eax
mov al, 1
mov ecx, dword [ebp - 0x12c]
mov edx, dword [ebp - 0x12c]
and ecx, 7
shl al, cl
test edx, edx
jns 0x5dd115
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1f0], al
inc edi
cmp edi, dword [ebp - 0x10c]
jle 0x5dd0cb
jmp 0x5dd233
cmp dword [ebp - 0x74], 0
je 0x5dd1df
cmp edi, 0xff
jg 0x5dd152
test byte [ebp - 0x3c], 1
je 0x5dd1df
cmp edi, 0x7f
jle 0x5dd1df
mov dword [ebp - 0x70], 1
mov ecx, dword [ebp - 0x78]
mov byte [ecx], 1
inc dword [ebp - 0x78]
mov eax, dword [ebp - 0x78]
push eax
push edi
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
test byte [ebp - 0x3c], 1
je 0x5dd233
mov edx, edi
test edx, edx
jns 0x5dd185
add edx, 0x7f
sar edx, 7
xor ecx, ecx
mov cl, byte [edx + 0x67e9e8]
shl ecx, 7
mov eax, edi
and eax, 0x8000007f
jns 0x5dd1a1
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx edx, word [ecx*2 + 0x674be8]
mov ecx, dword [edx*8 + 0x673da4]
add ecx, edi
mov dword [ebp - 0x130], ecx
cmp ecx, edi
je 0x5dd233
mov eax, dword [ebp - 0x78]
mov byte [eax], 1
inc dword [ebp - 0x78]
mov edx, dword [ebp - 0x78]
push edx
mov ecx, dword [ebp - 0x130]
push ecx
call fcn.005e9c9c
add esp, 8
add dword [ebp - 0x78], eax
jmp 0x5dd233
mov ecx, edi
mov al, 1
and ecx, 7
mov edx, edi
shl al, cl
test edx, edx
jns 0x5dd1f1
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1f0], al
test byte [ebp - 0x3c], 1
je 0x5dd227
mov ecx, dword [ebx + 4]
xor eax, eax
mov al, byte [ecx + edi]
mov edi, eax
mov al, 1
mov ecx, edi
mov edx, edi
and ecx, 7
shl al, cl
test edx, edx
jns 0x5dd21d
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1f0], al
inc dword [ebp - 0xa0]
mov dword [ebp - 0xa4], edi
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
movzx edi, byte [ecx]
test edi, edi
je 0x5dd253
cmp edi, 0x5d
jne 0x5dc105
cmp dword [ebp - 0x54], 0
jne 0x5dc105
test edi, edi
jne 0x5dd265
mov eax, dword [ebp + 0x14]
mov dword [eax], 6
jmp 0x5df966
cmp dword [ebp - 0xa0], 1
jne 0x5dd316
cmp dword [ebp - 0x70], 0
jne 0x5dd316
cmp dword [ebp - 0x74], 0
je 0x5dd297
cmp dword [ebp - 0x88], 0
je 0x5dd297
cmp dword [ebp - 0xa4], 0x80
jge 0x5dd316
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x88], 0
je 0x5dd2cb
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5dd2b3
mov dword [ebp - 0x20], 0xffffffff
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], ecx
mov byte [esi], 0x1e
inc esi
mov cl, byte [ebp - 0xa4]
mov byte [esi], cl
inc esi
jmp 0x5df95e
cmp dword [ebp - 0x74], 0
je 0x5dd2fb
cmp dword [ebp - 0xa4], 0x7f
jle 0x5dd2fb
lea eax, [ebp - 0xcc]
push eax
mov edx, dword [ebp - 0xa4]
push edx
call fcn.005e9c9c
add esp, 8
mov dword [ebp - 0xc4], eax
jmp 0x5df884
mov cl, byte [ebp - 0xa4]
mov byte [ebp - 0xcc], cl
mov dword [ebp - 0xc4], 1
jmp 0x5df884
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5dd323
mov dword [ebp - 0x20], 0xffffffff
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x70], 0
je 0x5dd3c1
cmp dword [ebp - 0x8c], 0
jne 0x5dd3c1
mov ecx, dword [ebp - 0x78]
mov byte [ecx], 0
inc dword [ebp - 0x78]
mov byte [esi], 0x50
inc esi
add esi, 2
cmp dword [ebp - 0x88], 0
je 0x5dd35f
mov al, 1
jmp 0x5dd361
xor eax, eax
mov byte [esi], al
cmp dword [ebp - 0xa0], 0
jle 0x5dd39d
or byte [esi], 2
inc esi
mov edx, dword [ebp - 0x78]
sub edx, esi
lea ecx, [esi + 0x20]
push edx
push esi
push ecx
call sub.msvcrt.dll_memmove
add esp, 0xc
lea ecx, [ebp - 0x1f0]
push 0x20
push ecx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, dword [ebp - 0x78]
add esi, 0x20
jmp 0x5dd3a0
mov esi, dword [ebp - 0x78]
mov eax, esi
mov edx, dword [ebp - 0x64]
sub eax, dword [ebp - 0x64]
mov ecx, esi
sar eax, 8
mov byte [edx + 1], al
sub ecx, dword [ebp - 0x64]
mov edi, dword [ebp - 0x64]
and cl, 0xff
mov byte [edi + 2], cl
jmp 0x5df95e
mov eax, dword [ebp - 0x88]
cmp eax, dword [ebp - 0x8c]
jne 0x5dd3d3
mov dl, 0x4e
jmp 0x5dd3d5
mov dl, 0x4f
mov byte [esi], dl
inc esi
cmp dword [ebp - 0x88], 0
je 0x5dd423
cmp dword [ebp + 0x28], 0
jne 0x5dd435
xor edi, edi
mov eax, esi
mov dword [ebp - 0x1d0], eax
lea edx, [ebp - 0x1f0]
mov dword [ebp - 0x1cc], edx
mov ecx, dword [ebp - 0x1cc]
mov eax, dword [ebp - 0x1d0]
inc edi
mov cl, byte [ecx]
not cl
mov byte [eax], cl
inc dword [ebp - 0x1d0]
inc dword [ebp - 0x1cc]
cmp edi, 0x20
jl 0x5dd3fd
jmp 0x5dd435
push 0x20
lea edx, [ebp - 0x1f0]
push edx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, 0x20
jmp 0x5df95e
cmp dword [ebp - 0x94], 0
je 0x5df831
mov ecx, dword [ebp + 0x14]
push ecx
lea eax, [ebp - 0x10]
push eax
lea edx, [ebp - 0xc]
push edx
mov ecx, dword [ebp - 0x5c]
inc ecx
push ecx
call fcn.005da28c
add esp, 0x10
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x5df966
jmp 0x5dd49e
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], 0xffffffff
jmp 0x5dd49e
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x10], 0xffffffff
jmp 0x5dd49e
xor ecx, ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0x64], 0
jne 0x5dd4b2
mov eax, dword [ebp + 0x14]
mov dword [eax], 9
jmp 0x5df966
cmp dword [ebp - 0xc], 0
jne 0x5dd4c4
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x10]
jne 0x5dd4d0
xor edx, edx
jmp 0x5dd4d5
mov edx, 0x200
mov dword [ebp - 0x34], edx
xor eax, eax
mov dword [ebp - 8], eax
xor ecx, ecx
mov dword [ebp - 0x90], ecx
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2b
jne 0x5dd50c
xor ecx, ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x90], 1
inc dword [ebp - 0x5c]
jmp 0x5dd52a
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3f
jne 0x5dd524
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 4], ecx
inc dword [ebp - 0x5c]
jmp 0x5dd52a
mov eax, dword [ebp - 0x18]
mov dword [ebp - 4], eax
mov edx, dword [ebp - 0x64]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x1c
je 0x5dd546
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x1d
jne 0x5dd615
cmp dword [ebp - 0x74], 0
je 0x5dd5a2
test byte [esi - 1], 0x80
je 0x5dd5a2
lea ecx, [esi - 1]
mov dword [ebp - 0x134], ecx
jmp 0x5dd563
dec dword [ebp - 0x134]
mov eax, dword [ebp - 0x134]
xor edx, edx
mov dl, byte [eax]
and edx, 0xc0
cmp edx, 0x80
je 0x5dd55d
mov edi, esi
sub edi, dword [ebp - 0x134]
push edi
mov eax, dword [ebp - 0x134]
push eax
lea edx, [ebp - 0x84]
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
or edi, 0x80
jmp 0x5dd5b7
movzx edi, byte [esi - 1]
cmp dword [ebp - 0xc], 1
jle 0x5dd5b7
mov eax, dword [ebp - 0x30]
or eax, edi
or eax, dword [ebx + 0x48]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x90], 0
jne 0x5dd6d5
cmp dword [ebp - 0x10], 0
jge 0x5dd6d5
push ebx
mov edx, dword [ebp - 0x3c]
push edx
mov ecx, dword [ebp - 0x5c]
inc ecx
push ecx
lea ecx, [ebp - 0x84]
push ecx
mov eax, dword [ebp - 0x74]
push eax
push edi
mov edx, dword [ebp - 0x64]
xor ecx, ecx
mov cl, byte [edx]
push ecx
call fcn.005db158
add esp, 0x1c
test eax, eax
je 0x5dd6d5
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x90], 1
jmp 0x5dd6d5
mov edx, dword [ebp - 0x64]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x1e
jne 0x5dd67b
mov dword [ebp - 8], 0xd
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x90], 0
movzx edi, byte [eax + 1]
jne 0x5dd6d5
cmp dword [ebp - 0x10], 0
jge 0x5dd6d5
push ebx
mov eax, dword [ebp - 0x3c]
push eax
mov edx, dword [ebp - 0x5c]
inc edx
push edx
push 0
mov ecx, dword [ebp - 0x74]
push ecx
push edi
push 0x1e
call fcn.005db158
add esp, 0x1c
test eax, eax
je 0x5dd6d5
xor ecx, ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x90], 1
jmp 0x5dd6d5
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x17
jge 0x5dd93a
mov dword [ebp - 8], 0x1a
mov ecx, dword [ebp - 0x64]
cmp dword [ebp - 0x90], 0
movzx edi, byte [ecx]
jne 0x5dd6d5
cmp dword [ebp - 0x10], 0
jge 0x5dd6d5
push ebx
mov eax, dword [ebp - 0x3c]
push eax
mov edx, dword [ebp - 0x5c]
inc edx
push edx
push 0
mov ecx, dword [ebp - 0x74]
push ecx
push 0
push edi
call fcn.005db158
add esp, 0x1c
test eax, eax
je 0x5dd6d5
xor ecx, ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x90], 1
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x10
je 0x5dd6ed
mov ecx, dword [ebp - 0x64]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0xf
jne 0x5dd70b
mov edx, dword [ebp - 0x64]
xor ecx, ecx
mov cl, byte [edx + 1]
mov dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dl, byte [eax + 2]
mov dword [ebp - 0x140], edx
jmp 0x5dd71a
or ecx, 0xffffffff
mov dword [ebp - 0x140], ecx
mov dword [ebp - 0x13c], ecx
mov dword [ebp - 0x138], esi
cmp dword [ebp - 0x10], 0
mov esi, dword [ebp - 0x64]
je 0x5de1b5
cmp dword [ebp - 0x10], 1
je 0x5dd737
or dword [ebx + 0x44], 1
mov eax, dword [ebp - 8]
add dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
jne 0x5dd78d
cmp dword [ebp - 0x10], 0xffffffff
jne 0x5dd757
mov dl, byte [ebp - 4]
add dl, 0x1f
mov byte [esi], dl
inc esi
jmp 0x5dd8e6
cmp dword [ebp - 0x10], 1
jne 0x5dd76b
mov cl, byte [ebp - 4]
add cl, 0x23
mov byte [esi], cl
inc esi
jmp 0x5dd8e6
mov cl, byte [ebp - 4]
add cl, 0x25
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x10]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0x10]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
jmp 0x5dd8e6
cmp dword [ebp - 0xc], 1
jne 0x5dd7dc
cmp dword [ebp - 0x10], 0xffffffff
jne 0x5dd7a7
mov cl, byte [ebp - 4]
add cl, 0x21
mov byte [esi], cl
inc esi
jmp 0x5dd8e6
cmp dword [ebp - 0x10], 1
mov esi, dword [ebp - 0x138]
je 0x5de1b5
mov al, byte [ebp - 4]
add al, 0x25
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x10]
dec edx
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0x10]
add cl, 0xff
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
jmp 0x5dd8e6
mov cl, byte [ebp - 8]
add cl, 0x27
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0xc]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0xc]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
cmp dword [ebp - 0x10], 0
jge 0x5dd85a
cmp dword [ebp - 0x74], 0
je 0x5dd82c
cmp edi, 0x80
jl 0x5dd82c
mov ecx, edi
lea eax, [ebp - 0x84]
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 0x5dd84c
mov ecx, edi
mov byte [esi], cl
inc esi
cmp dword [ebp - 0x13c], 0
jl 0x5dd84c
mov al, byte [ebp - 0x13c]
mov byte [esi], al
inc esi
mov dl, byte [ebp - 0x140]
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 4]
add cl, 0x1f
mov byte [esi], cl
inc esi
jmp 0x5dd8e6
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0xc]
je 0x5dd8e6
cmp dword [ebp - 0x74], 0
je 0x5dd893
cmp edi, 0x80
jl 0x5dd893
mov edx, edi
lea ecx, [ebp - 0x84]
and edx, 7
push edx
push ecx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, edi
and eax, 7
add esi, eax
jmp 0x5dd898
mov edx, edi
mov byte [esi], dl
inc esi
cmp dword [ebp - 0x13c], 0
jl 0x5dd8b3
mov cl, byte [ebp - 0x13c]
mov byte [esi], cl
inc esi
mov al, byte [ebp - 0x140]
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0xc]
sub dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 1
jne 0x5dd8ca
mov cl, byte [ebp - 4]
add cl, 0x23
mov byte [esi], cl
inc esi
jmp 0x5dd8e6
mov al, byte [ebp - 4]
add al, 0x25
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x10]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0x10]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
cmp dword [ebp - 0x74], 0
je 0x5dd911
cmp edi, 0x80
jl 0x5dd911
mov eax, edi
lea edx, [ebp - 0x84]
and eax, 7
push eax
push edx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
and edi, 7
add esi, edi
jmp 0x5dd916
mov ecx, edi
mov byte [esi], cl
inc esi
cmp dword [ebp - 0x13c], 0
jl 0x5ddfd7
mov al, byte [ebp - 0x13c]
mov byte [esi], al
inc esi
mov dl, byte [ebp - 0x140]
mov byte [esi], dl
inc esi
jmp 0x5ddfd7
mov ecx, dword [ebp - 0x64]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x4e
je 0x5dd96e
mov edx, dword [ebp - 0x64]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x4f
je 0x5dd96e
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x50
je 0x5dd96e
mov ecx, dword [ebp - 0x64]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x51
jne 0x5dda14
cmp dword [ebp - 0x10], 0
jne 0x5dd97c
mov esi, dword [ebp - 0x64]
jmp 0x5de1b5
cmp dword [ebp - 0x10], 1
je 0x5dd986
or dword [ebx + 0x44], 1
cmp dword [ebp - 0xc], 0
jne 0x5dd99f
cmp dword [ebp - 0x10], 0xffffffff
jne 0x5dd99f
mov al, byte [ebp - 4]
add al, 0x46
mov byte [esi], al
inc esi
jmp 0x5ddfd7
cmp dword [ebp - 0xc], 1
jne 0x5dd9b9
cmp dword [ebp - 0x10], 0xffffffff
jne 0x5dd9b9
mov dl, byte [ebp - 4]
add dl, 0x48
mov byte [esi], dl
inc esi
jmp 0x5ddfd7
cmp dword [ebp - 0xc], 0
jne 0x5dd9d3
cmp dword [ebp - 0x10], 1
jne 0x5dd9d3
mov cl, byte [ebp - 4]
add cl, 0x4a
mov byte [esi], cl
inc esi
jmp 0x5ddfd7
mov cl, byte [ebp - 4]
add cl, 0x4c
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0xc]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0xc]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
cmp dword [ebp - 0x10], 0xffffffff
jne 0x5dd9fb
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0x10]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
jmp 0x5ddfd7
mov ecx, dword [ebp - 0x64]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5e
je 0x5dda48
mov edx, dword [ebp - 0x64]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5f
je 0x5dda48
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5d
je 0x5dda48
mov ecx, dword [ebp - 0x64]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x60
jne 0x5ddfb9
xor edx, edx
mov edi, esi
mov dword [ebp - 0x148], edx
xor eax, eax
sub edi, dword [ebp - 0x64]
mov dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x64]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x60
jne 0x5dda84
mov ecx, dword [ebp - 0x64]
xor eax, eax
mov al, byte [ecx + 3]
cmp eax, 0x66
jne 0x5dda84
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x37
jmp 0x5df966
cmp dword [ebp - 0x10], 0xffffffff
jne 0x5ddad1
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x150]
xor edx, edx
mov dl, byte [eax + 1]
shl edx, 8
mov eax, dword [ebp - 0x150]
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
add dword [ebp - 0x150], edx
mov edx, dword [ebp - 0x150]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x55
jne 0x5dda93
mov eax, esi
sub eax, dword [ebp - 0x150]
mov dword [ebp - 0x148], eax
cmp dword [ebp - 0xc], 0
jne 0x5ddbc8
cmp dword [ebp - 0x10], 1
jg 0x5ddb32
mov byte [esi], 0
mov edx, dword [ebp - 0x6c]
push edx
push ebx
mov ecx, dword [ebp - 0x74]
push ecx
push 1
mov eax, dword [ebp - 0x64]
push eax
call fcn.005dafb4
add esp, 0x14
push edi
mov edx, dword [ebp - 0x64]
push edx
mov ecx, dword [ebp - 0x64]
inc ecx
push ecx
call sub.msvcrt.dll_memmove
add esp, 0xc
inc esi
cmp dword [ebp - 0x10], 0
jne 0x5ddb1f
mov eax, dword [ebp - 0x64]
mov byte [eax], 0x6f
jmp 0x5de1b5
mov eax, dword [ebp - 0x64]
mov dl, byte [ebp - 4]
add dl, 0x67
mov byte [eax], dl
inc dword [ebp - 0x64]
jmp 0x5ddbc0
mov byte [esi], 0
mov edx, dword [ebp - 0x6c]
push edx
push ebx
mov ecx, dword [ebp - 0x74]
push ecx
push 4
mov ecx, dword [ebp - 0x64]
push ecx
call fcn.005dafb4
add esp, 0x14
push edi
mov eax, dword [ebp - 0x64]
push eax
mov edx, dword [ebp - 0x64]
add edx, 4
push edx
call sub.msvcrt.dll_memmove
mov eax, dword [ebp - 0x64]
mov cl, byte [ebp - 4]
add cl, 0x67
add esp, 0xc
mov byte [eax], cl
add esi, 4
inc dword [ebp - 0x64]
mov edx, dword [ebp - 0x64]
mov byte [edx], 0x5e
inc dword [ebp - 0x64]
cmp dword [ebp - 0x14c], 0
jne 0x5ddb87
xor ecx, ecx
jmp 0x5ddb90
mov ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x154], ecx
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x154]
mov eax, dword [ebp - 0x64]
sar edx, 8
mov byte [eax], dl
mov ecx, dword [ebp - 0x64]
mov dl, byte [ebp - 0x154]
and dl, 0xff
mov byte [ecx + 1], dl
add dword [ebp - 0x64], 2
dec dword [ebp - 0x10]
jmp 0x5ddce9
cmp dword [ebp - 0xc], 1
jle 0x5ddcdd
cmp dword [ebp + 0x28], 0
je 0x5ddc3c
mov ecx, dword [ebp - 0xc]
dec ecx
imul ecx, dword [ebp - 0x44]
mov dword [ebp - 0x158], ecx
mov eax, dword [ebp - 0xc]
dec eax
mov dword [ebp - 0x214], eax
fild dword [ebp - 0x214]
fild dword [ebp - 0x44]
fmulp st(1)
fld qword [0x5df978]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x5ddc1e
mov edx, dword [ebp + 0x28]
mov ecx, 0x7fffffeb
sub ecx, dword [edx]
cmp ecx, dword [ebp - 0x158]
jge 0x5ddc2c
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x5df966
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x158]
add dword [edx], ecx
jmp 0x5ddcdd
cmp dword [ebp - 0x58], 0
je 0x5ddc4e
cmp dword [ebp - 0x24], 0
jge 0x5ddc4e
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x144], 1
mov eax, dword [ebp - 0x144]
cmp eax, dword [ebp - 0xc]
jge 0x5ddcdd
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x15c], edx
push edi
mov ecx, dword [ebp - 0x64]
push ecx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0x15c]
jae 0x5ddcc1
xor edx, edx
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 1]
shl edx, 8
or edx, ecx
mov ecx, dword [ebx + 0x20]
add edx, edi
sar edx, 8
mov byte [ecx], dl
mov ecx, edi
mov dl, byte [eax]
shl edx, 8
or dl, byte [eax + 1]
add dl, cl
mov ecx, dword [ebx + 0x20]
and dl, 0xff
mov byte [ecx + 1], dl
add dword [ebx + 0x20], 2
add eax, 2
cmp eax, dword [ebp - 0x15c]
jb 0x5ddc85
mov eax, dword [ebp - 0x15c]
add esi, edi
mov dword [ebp - 0x6c], eax
inc dword [ebp - 0x144]
mov edx, dword [ebp - 0x144]
cmp edx, dword [ebp - 0xc]
jl 0x5ddc63
cmp dword [ebp - 0x10], 0
jle 0x5ddce9
mov ecx, dword [ebp - 0xc]
sub dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 0
jl 0x5ddef3
cmp dword [ebp + 0x28], 0
je 0x5ddd69
cmp dword [ebp - 0x10], 0
jle 0x5ddd69
mov eax, dword [ebp - 0x44]
add eax, 7
imul dword [ebp - 0x10]
add eax, 0xfffffffa
mov dword [ebp - 0x160], eax
fild dword [ebp - 0x10]
mov edx, dword [ebp - 0x44]
add edx, 7
mov dword [ebp - 0x218], edx
fild dword [ebp - 0x218]
fmulp st(1)
fld qword [0x5df978]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x5ddd4b
mov edx, dword [ebp + 0x28]
mov ecx, 0x7fffffeb
sub ecx, dword [edx]
cmp ecx, dword [ebp - 0x160]
jge 0x5ddd59
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x5df966
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x160]
add dword [edx], ecx
jmp 0x5dde75
mov ecx, dword [ebp - 0x10]
dec ecx
mov dword [ebp - 0x144], ecx
cmp dword [ebp - 0x144], 0
jl 0x5dde75
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x164], eax
mov dl, byte [ebp - 4]
add dl, 0x67
mov byte [esi], dl
inc esi
cmp dword [ebp - 0x144], 0
je 0x5dddda
mov byte [esi], 0x5e
inc esi
cmp dword [ebp - 0x14c], 0
jne 0x5dddac
xor ecx, ecx
jmp 0x5dddb4
mov ecx, esi
sub ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x168], ecx
mov dword [ebp - 0x14c], esi
mov eax, dword [ebp - 0x168]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0x168]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
push edi
mov ecx, dword [ebp - 0x64]
push ecx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0x164]
jae 0x5dde57
xor edx, edx
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 1]
shl edx, 8
or edx, ecx
add edx, edi
cmp dword [ebp - 0x144], 0
je 0x5dde13
mov ecx, 4
jmp 0x5dde18
mov ecx, 1
add edx, ecx
mov ecx, dword [ebx + 0x20]
sar edx, 8
mov byte [ecx], dl
mov ecx, edi
mov dl, byte [eax]
shl edx, 8
or dl, byte [eax + 1]
add dl, cl
cmp dword [ebp - 0x144], 0
je 0x5dde3b
mov cl, 4
jmp 0x5dde3d
mov cl, 1
add dl, cl
mov ecx, dword [ebx + 0x20]
and dl, 0xff
mov byte [ecx + 1], dl
add dword [ebx + 0x20], 2
add eax, 2
cmp eax, dword [ebp - 0x164]
jb 0x5dddf3
mov eax, dword [ebp - 0x164]
add esi, edi
mov dword [ebp - 0x6c], eax
dec dword [ebp - 0x144]
cmp dword [ebp - 0x144], 0
jge 0x5ddd80
cmp dword [ebp - 0x14c], 0
je 0x5ddfd7
mov eax, esi
sub eax, dword [ebp - 0x14c]
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 - 0x16c], ecx
cmp dword [ebp - 0x16c], 0
jne 0x5ddeb0
xor ecx, ecx
jmp 0x5ddebc
mov ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x14c], 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
cmp dword [ebp - 0x14c], 0
jne 0x5dde82
jmp 0x5ddfd7
mov eax, esi
xor ecx, ecx
sub eax, dword [ebp - 0x148]
mov dword [ebp - 0x170], eax
mov edx, dword [ebp - 0x170]
mov eax, dword [ebp - 0x170]
mov edi, dword [ebp - 0x170]
mov cl, byte [edx + 1]
shl ecx, 8
xor edx, edx
mov dl, byte [eax + 2]
or ecx, edx
sub edi, ecx
mov dword [ebp - 0x174], edi
mov edx, dword [ebp - 0x170]
mov al, byte [ebp - 4]
add al, 0x56
mov byte [edx], al
cmp dword [ebp + 0x28], 0
jne 0x5ddfd7
mov ecx, dword [ebp - 0x174]
movzx ecx, byte [ecx]
cmp ecx, 0x5d
je 0x5ddfd7
mov eax, dword [ebp - 0x174]
mov dword [ebp - 0x178], eax
mov edx, dword [ebp - 0x74]
push edx
mov ecx, dword [ebp - 0x170]
push ecx
mov eax, dword [ebp - 0x178]
push eax
call fcn.005dac24
add esp, 0xc
test eax, eax
je 0x5ddf88
mov edx, dword [ebp - 0x174]
add byte [edx], 3
jmp 0x5ddfd7
mov edx, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x178]
xor eax, eax
movzx edx, byte [edx + 2]
mov al, byte [ecx + 1]
shl eax, 8
or eax, edx
add dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x178]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x54
je 0x5ddf5f
jmp 0x5ddfd7
mov ecx, dword [ebp - 0x64]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x6d
je 0x5de1b5
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xb
jmp 0x5df966
cmp dword [ebp - 0x90], 0
je 0x5de1b5
mov ecx, dword [ebp - 0x50]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x27
je 0x5de008
mov edx, dword [ebp - 0x50]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x41
je 0x5de008
mov eax, dword [ebp - 0x50]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x34
jne 0x5de04a
mov ecx, dword [ebp - 0x50]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x41
jne 0x5de035
mov edx, dword [ebp - 0x50]
xor ecx, ecx
mov cl, byte [edx + 3]
cmp ecx, 0x10
je 0x5de02e
mov eax, dword [ebp - 0x50]
xor edx, edx
mov dl, byte [eax + 3]
cmp edx, 0xf
jne 0x5de035
mov ecx, 2
jmp 0x5de037
xor ecx, ecx
mov eax, dword [ebp - 0x50]
xor edx, edx
mov dl, byte [eax]
movzx edi, byte [edx + 0x673a0c]
add ecx, edi
add dword [ebp - 0x50], ecx
mov eax, esi
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x17c], eax
cmp dword [ebp - 0x17c], 0
jle 0x5de1b5
mov edx, dword [ebp - 0x50]
xor ecx, ecx
mov cl, byte [edx]
add ecx, 0xffffffe1
cmp ecx, 0x20
ja case.0x5de07b.31
mov cl, byte [ecx + 0x5de082]
jmp dword [ecx*4 + 0x5de0a3]
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x28
jmp 0x5de1b5
mov eax, dword [ebp - 0x50]
mov byte [eax], 0x29
jmp 0x5de1b5
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x2a
jmp 0x5de1b5
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x2b
jmp 0x5de1b5
mov eax, dword [ebp - 0x50]
mov byte [eax], 0x42
jmp 0x5de1b5
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x43
jmp 0x5de1b5
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x44
jmp 0x5de1b5
mov eax, dword [ebp - 0x50]
mov byte [eax], 0x45
jmp 0x5de1b5
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x35
jmp 0x5de1b5
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x36
jmp 0x5de1b5
mov eax, dword [ebp - 0x50]
mov byte [eax], 0x37
jmp 0x5de1b5
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x38
jmp 0x5de1b5
mov ecx, dword [ebp - 0x17c]
push ecx
mov eax, dword [ebp - 0x50]
push eax
mov edx, dword [ebp - 0x50]
add edx, 3
push edx
call sub.msvcrt.dll_memmove
add dword [ebp - 0x17c], 3
mov ecx, dword [ebp - 0x50]
add esi, 3
add esp, 0xc
mov byte [ecx], 0x5d
mov byte [esi], 0x55
inc esi
mov eax, dword [ebp - 0x17c]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0x17c]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
mov ecx, dword [ebp - 0x17c]
mov eax, dword [ebp - 0x50]
sar ecx, 8
mov byte [eax + 1], cl
mov eax, dword [ebp - 0x50]
mov dl, byte [ebp - 0x17c]
and dl, 0xff
mov byte [eax + 2], dl
xor edx, edx
mov dword [ebp - 0x64], edx
mov ecx, dword [ebp - 0x34]
or dword [ebx + 0x48], ecx
jmp 0x5df95e
mov ecx, dword [ebp - 0x3c]
xor eax, eax
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0x14], 0x5f
mov edx, dword [ebx + 0x20]
xor ecx, ecx
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x9c], ecx
inc dword [ebp - 0x5c]
xor edx, edx
mov eax, dword [ebp - 0x5c]
mov dl, byte [eax]
cmp edx, 0x2a
jne 0x5de30c
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
mov edx, dword [ebx + 0xc]
test byte [edx + eax], 2
je 0x5de30c
mov dword [ebp - 0x184], str.ACCEPT
inc dword [ebp - 0x5c]
xor eax, eax
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x188], ecx
mov dword [ebp - 0x64], eax
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebx + 0xc]
test byte [eax + ecx], 2
jne 0x5de22e
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3a
jne 0x5de25b
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3b
jmp 0x5df966
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x5de275
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3c
jmp 0x5df966
mov edx, dword [ebp - 0x5c]
sub edx, dword [ebp - 0x188]
xor edi, edi
mov dword [ebp - 0x180], edx
jmp 0x5de2e5
mov eax, dword [edi*8 + 0x672a90]
cmp eax, dword [ebp - 0x180]
jne 0x5de2d6
mov edx, dword [ebp - 0x180]
push edx
mov ecx, dword [ebp - 0x184]
push ecx
mov ecx, dword [ebp - 0x188]
push ecx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5de2d6
mov al, byte [edi*8 + 0x672a94]
xor ecx, ecx
mov byte [esi], al
mov dl, byte [esi]
inc esi
mov cl, dl
cmp ecx, 0x6e
jne 0x5de2ed
mov dword [ebx + 0x4c], 1
jmp 0x5de2ed
mov eax, dword [edi*8 + 0x672a90]
inc eax
add dword [ebp - 0x184], eax
inc edi
cmp edi, dword [0x672ac8]
jl 0x5de288
cmp edi, dword [0x672ac8]
jl 0x5df95e
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x3c
jmp 0x5df966
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3f
jne 0x5df21b
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3a
jg 0x5de3a8
je 0x5de430
add ecx, 0xffffffdf
cmp ecx, 0x18
ja case.0x5de33d.34
jmp dword [ecx*4 + 0x5de344]
cmp ecx, 0x43
jg 0x5de3cf
je 0x5de984
sub ecx, 0x3c
je 0x5de918
dec ecx
je 0x5de8e1
dec ecx
je 0x5de975
jmp case.0x5de33d.34
sub ecx, 0x50
je 0x5dea37
sub ecx, 2
je 0x5dedfa
sub ecx, 0x2a
je 0x5de426
jmp case.0x5de33d.34
inc dword [ebp - 0x5c]
jmp 0x5de3f3
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0
je 0x5de407
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
jne 0x5de3f0
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0
jne 0x5df95e
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x12
jmp 0x5df966
mov dword [ebp - 0x9c], 1
mov dword [ebp - 0x14], 0x5e
inc dword [ebp - 0x5c]
jmp 0x5df248
mov dword [ebp - 0x14], 0x60
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3f
jne 0x5de486
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 2]
cmp ecx, 0x3d
je 0x5df248
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x21
je 0x5df248
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x3c
je 0x5df248
mov byte [esi + 3], 0x64
mov dword [ebp - 0xb4], 3
mov dword [ebp - 0xb0], 0xffffffff
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x52
jne 0x5de4cc
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x26
jne 0x5de4cc
mov dword [ebp - 0xc0], 0xffffffff
add dword [ebp - 0x5c], 2
mov byte [esi + 3], 0x65
jmp 0x5de536
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3c
jne 0x5de4e8
mov dword [ebp - 0xc0], 0x3e
inc dword [ebp - 0x5c]
jmp 0x5de536
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x27
jne 0x5de504
mov dword [ebp - 0xc0], 0x27
inc dword [ebp - 0x5c]
jmp 0x5de536
xor eax, eax
mov dword [ebp - 0xc0], eax
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x2d
je 0x5de526
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2b
jne 0x5de536
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0xb0], eax
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
mov eax, dword [ebx + 0xc]
test byte [eax + ecx], 0x10
jne 0x5de558
inc dword [ebp - 0x5c]
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x1c
jmp 0x5df966
xor ecx, ecx
mov dword [ebp - 0xac], ecx
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x1a0], eax
jmp 0x5de5ab
cmp dword [ebp - 0xac], 0
jl 0x5de5a8
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x673525], 4
je 0x5de59f
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0xac]
add eax, eax
movzx edx, byte [edx]
lea eax, [eax + eax*4]
add eax, edx
add eax, 0xffffffd0
jmp 0x5de5a2
or eax, 0xffffffff
mov dword [ebp - 0xac], eax
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebx + 0xc]
movzx ecx, byte [ecx]
test byte [eax + ecx], 0x10
jne 0x5de56e
mov edx, dword [ebp - 0x5c]
sub edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x198], edx
cmp dword [ebp - 0xc0], 0
jle 0x5de5e4
mov ecx, dword [ebp - 0x5c]
inc dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, dword [ebp - 0xc0]
jne 0x5de5f3
mov edx, dword [ebp - 0x5c]
inc dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x5de604
dec dword [ebp - 0x5c]
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1a
jmp 0x5df966
cmp dword [ebp + 0x28], 0
jne 0x5df248
cmp dword [ebp - 0xb0], 0
jle 0x5de690
cmp dword [ebp - 0xac], 0
jg 0x5de62e
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x3a
jmp 0x5df966
cmp dword [ebp - 0xb0], 0x2d
jne 0x5de643
mov ecx, dword [ebx + 0x30]
sub ecx, dword [ebp - 0xac]
inc ecx
jmp 0x5de64c
mov ecx, dword [ebp - 0xac]
add ecx, dword [ebx + 0x30]
mov dword [ebp - 0xac], ecx
cmp dword [ebp - 0xac], 0
jle 0x5de666
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebx + 0x34]
jle 0x5de674
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x5df966
mov ecx, dword [ebp - 0xac]
sar ecx, 8
mov byte [esi + 4], cl
mov al, byte [ebp - 0xac]
and al, 0xff
mov byte [esi + 5], al
jmp 0x5df248
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x1a4], edx
xor ecx, ecx
mov dword [ebp - 0x18c], ecx
jmp 0x5de6d6
mov eax, dword [ebp - 0x198]
push eax
mov edx, dword [ebp - 0x1a4]
add edx, 2
push edx
mov ecx, dword [ebp - 0x1a0]
push ecx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x5de6e1
mov eax, dword [ebx + 0x2c]
add dword [ebp - 0x1a4], eax
inc dword [ebp - 0x18c]
mov edx, dword [ebp - 0x18c]
cmp edx, dword [ebx + 0x28]
jl 0x5de6a3
mov ecx, dword [ebp - 0x18c]
cmp ecx, dword [ebx + 0x28]
jge 0x5de729
mov eax, dword [ebp - 0x1a4]
xor edx, edx
mov dl, byte [eax]
shl edx, 8
mov eax, dword [ebp - 0x1a4]
xor ecx, ecx
mov cl, byte [eax + 1]
or edx, ecx
mov dword [ebp - 0xac], edx
mov edx, dword [ebp - 0xac]
sar edx, 8
mov byte [esi + 4], dl
mov cl, byte [ebp - 0xac]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x5df248
test byte [ebp - 0x3c], 8
setne al
and eax, 1
push eax
mov edx, dword [ebp - 0x198]
push edx
mov ecx, dword [ebp - 0x1a0]
push ecx
push ebx
call fcn.005da6c0
add esp, 0x10
mov dword [ebp - 0x18c], eax
test eax, eax
jle 0x5de772
mov edx, dword [ebp - 0x18c]
sar edx, 8
mov byte [esi + 4], dl
mov cl, byte [ebp - 0x18c]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x5df248
cmp dword [ebp - 0xc0], 0
je 0x5de78e
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xf
jmp 0x5df966
mov edx, dword [ebp - 0x1a0]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x52
jne 0x5de856
xor eax, eax
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x18c], 1
mov edx, dword [ebp - 0x18c]
cmp edx, dword [ebp - 0x198]
jge 0x5de823
mov ecx, dword [ebp - 0x1a0]
mov eax, dword [ebp - 0x18c]
xor edx, edx
mov dl, byte [ecx + eax]
test byte [edx + 0x673525], 4
jne 0x5de7e9
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xf
jmp 0x5df966
mov edx, dword [ebp - 0x1a0]
mov ecx, dword [ebp - 0x18c]
mov eax, dword [ebp - 0xac]
movzx ecx, byte [edx + ecx]
add eax, eax
lea eax, [eax + eax*4]
add ecx, eax
add ecx, 0xffffffd0
mov dword [ebp - 0xac], ecx
inc dword [ebp - 0x18c]
mov edx, dword [ebp - 0x18c]
cmp edx, dword [ebp - 0x198]
jl 0x5de7c1
cmp dword [ebp - 0xac], 0
jne 0x5de836
mov dword [ebp - 0xac], 0xffff
mov byte [esi + 3], 0x65
mov ecx, dword [ebp - 0xac]
sar ecx, 8
mov byte [esi + 4], cl
mov al, byte [ebp - 0xac]
and al, 0xff
mov byte [esi + 5], al
jmp 0x5df248
cmp dword [ebp - 0x198], 6
jne 0x5de88c
push 6
push str.DEFINE
mov edx, dword [ebp - 0x1a0]
push edx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5de88c
mov byte [esi + 3], 0x66
mov dword [ebp - 0xb4], 1
jmp 0x5df248
cmp dword [ebp - 0xac], 0
jle 0x5de8bd
mov ecx, dword [ebp - 0xac]
cmp ecx, dword [ebx + 0x34]
jg 0x5de8bd
mov eax, dword [ebp - 0xac]
sar eax, 8
mov byte [esi + 4], al
mov dl, byte [ebp - 0xac]
and dl, 0xff
mov byte [esi + 5], dl
jmp 0x5df248
cmp dword [ebp - 0xac], 0
jne 0x5de8cd
mov eax, 0x23
jmp 0x5de8d2
mov eax, 0xf
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
jmp 0x5df966
mov dword [ebp - 0x14], 0x58
inc dword [ebp - 0x5c]
jmp 0x5df248
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
movzx ecx, byte [ecx]
cmp ecx, 0x29
jne 0x5de90c
mov byte [esi], 0x6d
inc esi
xor eax, eax
mov dword [ebp - 0x64], eax
jmp 0x5df95e
mov dword [ebp - 0x14], 0x59
jmp 0x5df248
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx + 1]
sub cl, 0x21
je 0x5de93a
sub cl, 0x1c
je 0x5de92a
jmp 0x5de94a
mov dword [ebp - 0x14], 0x5a
add dword [ebp - 0x5c], 2
jmp 0x5df248
mov dword [ebp - 0x14], 0x5b
add dword [ebp - 0x5c], 2
jmp 0x5df248
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
mov eax, dword [ebx + 0xc]
test byte [eax + edx], 0x10
jne case.0x5de33d.39
inc dword [ebp - 0x5c]
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x18
jmp 0x5df966
mov dword [ebp - 0x14], 0x5d
inc dword [ebp - 0x5c]
jmp 0x5df248
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x40], 1
mov byte [esi], 0x53
inc esi
xor ecx, ecx
mov dword [ebp - 0x1a8], ecx
jmp 0x5de9b9
mov ecx, dword [ebp - 0x1a8]
mov eax, dword [ebp - 0x5c]
add ecx, ecx
xor edx, edx
mov dl, byte [eax]
lea ecx, [ecx + ecx*4]
add ecx, edx
add ecx, 0xffffffd0
mov dword [ebp - 0x1a8], ecx
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
test byte [eax + 0x673525], 4
jne 0x5de99c
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x5de9e6
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x27
jmp 0x5df966
cmp dword [ebp - 0x1a8], 0xff
jle 0x5dea00
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x26
jmp 0x5df966
mov cl, byte [ebp - 0x1a8]
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x5c]
sub eax, dword [ebx + 0x18]
inc eax
sar eax, 8
mov byte [esi], al
mov edx, dword [ebp - 0x5c]
sub edx, dword [ebx + 0x18]
inc edx
and dl, 0xff
mov byte [esi + 1], dl
mov byte [esi + 2], 0
mov byte [esi + 3], 0
add esi, 4
xor ecx, ecx
mov dword [ebp - 0x64], ecx
jmp 0x5df95e
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3d
je 0x5dea52
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3e
jne 0x5dea79
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3e
sete al
and eax, 1
mov dword [ebp - 0x98], eax
mov dword [ebp - 0xc0], 0x29
jmp 0x5dec8f
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3c
je case.0x5de33d.39
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x29
jmp 0x5df966
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3c
jne 0x5deaa6
mov eax, 0x3e
jmp 0x5deaab
mov eax, 0x27
mov dword [ebp - 0xc0], eax
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x1a0], edx
jmp 0x5deac2
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebx + 0xc]
movzx ecx, byte [ecx]
test byte [eax + ecx], 0x10
jne 0x5deabf
mov edx, dword [ebp - 0x5c]
sub edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x198], edx
cmp dword [ebp + 0x28], 0
je 0x5deb58
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, dword [ebp - 0xc0]
je 0x5deb03
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x2a
jmp 0x5df966
cmp dword [ebx + 0x28], 0x2710
jl 0x5deb1a
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x31
jmp 0x5df966
mov edx, dword [ebp - 0x198]
add edx, 3
cmp edx, dword [ebx + 0x2c]
jle 0x5dec70
mov ecx, dword [ebp - 0x198]
add ecx, 3
mov dword [ebx + 0x2c], ecx
cmp dword [ebp - 0x198], 0x20
jle 0x5dec70
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x30
jmp 0x5df966
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x1a4], edx
xor ecx, ecx
mov dword [ebp - 0x18c], ecx
jmp 0x5dec11
mov ecx, dword [ebp - 0x198]
push ecx
mov eax, dword [ebp - 0x1a4]
add eax, 2
push eax
mov edx, dword [ebp - 0x1a0]
push edx
call sub.msvcrt.dll_memcmp
add esp, 0xc
mov dword [ebp - 0x1ac], eax
cmp dword [ebp - 0x1ac], 0
jne 0x5debd0
mov ecx, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x198]
cmp byte [ecx + eax + 2], 0
jne 0x5debc6
test byte [ebp - 0x3a], 8
jne 0x5debd0
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x2b
jmp 0x5df966
mov dword [ebp - 0x1ac], 0xffffffff
cmp dword [ebp - 0x1ac], 0
jge 0x5dec02
mov ecx, dword [ebx + 0x28]
sub ecx, dword [ebp - 0x18c]
imul ecx, dword [ebx + 0x2c]
push ecx
mov eax, dword [ebp - 0x1a4]
push eax
mov edx, dword [ebp - 0x1a4]
add edx, dword [ebx + 0x2c]
push edx
call sub.msvcrt.dll_memmove
add esp, 0xc
jmp 0x5dec20
mov ecx, dword [ebx + 0x2c]
add dword [ebp - 0x1a4], ecx
inc dword [ebp - 0x18c]
mov eax, dword [ebp - 0x18c]
cmp eax, dword [ebx + 0x28]
jl 0x5deb6e
mov edx, dword [ebx + 0x30]
mov eax, dword [ebp - 0x1a4]
inc edx
sar edx, 8
mov byte [eax], dl
mov dl, byte [ebx + 0x30]
mov ecx, dword [ebp - 0x1a4]
inc edx
and dl, 0xff
mov byte [ecx + 1], dl
mov ecx, dword [ebp - 0x198]
push ecx
mov eax, dword [ebp - 0x1a0]
push eax
mov edx, dword [ebp - 0x1a4]
add edx, 2
push edx
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x198]
add esp, 0xc
mov byte [ecx + eax + 2], 0
inc dword [ebp - 0x5c]
inc dword [ebx + 0x28]
jmp 0x5df22a
mov dword [ebp - 0xc0], 0x29
mov dword [ebp - 0x98], 1
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x1a0], edx
jmp 0x5deca0
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebx + 0xc]
test byte [edx + eax], 0x10
jne 0x5dec9d
mov ecx, dword [ebp - 0x5c]
sub ecx, dword [ebp - 0x1a0]
mov dword [ebp - 0x198], ecx
cmp dword [ebp + 0x28], 0
je 0x5ded1d
cmp dword [ebp - 0x198], 0
jne 0x5decdc
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3e
jmp 0x5df966
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, dword [ebp - 0xc0]
je 0x5decf9
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x2a
jmp 0x5df966
cmp dword [ebp - 0x198], 0x20
jle 0x5ded10
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x30
jmp 0x5df966
xor ecx, ecx
mov dword [ebp - 0xac], ecx
jmp 0x5dede8
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x1a4], eax
xor edx, edx
mov dword [ebp - 0x18c], edx
jmp 0x5ded76
mov ecx, dword [ebp - 0x198]
push ecx
mov eax, dword [ebp - 0x1a4]
add eax, 2
push eax
mov edx, dword [ebp - 0x1a0]
push edx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5ded67
mov ecx, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x198]
cmp byte [ecx + eax + 2], 0
je 0x5ded81
mov edx, dword [ebx + 0x2c]
add dword [ebp - 0x1a4], edx
inc dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x18c]
cmp ecx, dword [ebx + 0x28]
jl 0x5ded30
mov eax, dword [ebp - 0x18c]
cmp eax, dword [ebx + 0x28]
jge 0x5dedae
mov edx, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x1a4]
xor ecx, ecx
mov cl, byte [edx]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 1]
or ecx, edx
mov dword [ebp - 0xac], ecx
jmp 0x5dede8
test byte [ebp - 0x3c], 8
setne cl
and ecx, 1
push ecx
mov eax, dword [ebp - 0x198]
push eax
mov edx, dword [ebp - 0x1a0]
push edx
push ebx
call fcn.005da6c0
add esp, 0x10
mov dword [ebp - 0xac], eax
test eax, eax
jg 0x5dede8
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x5df966
cmp dword [ebp - 0x98], 0
jne 0x5def24
jmp 0x5df6ef
inc dword [ebp - 0x5c]
mov dword [ebp - 0xc0], 0x29
mov ecx, dword [ebp - 0x5c]
movzx ecx, byte [ecx]
mov dword [ebp - 0xb0], ecx
cmp ecx, 0x2b
jne 0x5dee3b
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x673525], 4
jne 0x5dee5c
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3f
jmp 0x5df966
cmp dword [ebp - 0xb0], 0x2d
jne 0x5dee5c
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
test byte [ecx + 0x673525], 4
je case.0x5de33d.34
inc dword [ebp - 0x5c]
xor ecx, ecx
mov dword [ebp - 0xac], ecx
jmp 0x5dee85
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0xac]
add eax, eax
movzx edx, byte [edx]
lea eax, [eax + eax*4]
add eax, edx
add eax, 0xffffffd0
mov dword [ebp - 0xac], eax
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [eax]
test byte [ecx + 0x673525], 4
jne 0x5dee66
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, dword [ebp - 0xc0]
je 0x5deeb2
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x1d
jmp 0x5df966
cmp dword [ebp - 0xb0], 0x2d
jne 0x5deefb
cmp dword [ebp - 0xac], 0
jne 0x5deed2
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3a
jmp 0x5df966
mov edx, dword [ebx + 0x30]
sub edx, dword [ebp - 0xac]
inc edx
mov dword [ebp - 0xac], edx
cmp dword [ebp - 0xac], 0
jg 0x5def24
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0xf
jmp 0x5df966
cmp dword [ebp - 0xb0], 0x2b
jne 0x5def24
cmp dword [ebp - 0xac], 0
jne 0x5def1b
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3a
jmp 0x5df966
mov edx, dword [ebx + 0x30]
add dword [ebp - 0xac], edx
mov dword [ebp - 0x64], esi
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0x1b0], ecx
cmp dword [ebp + 0x28], 0
jne 0x5df014
mov byte [esi], 0
cmp dword [ebp - 0xac], 0
je 0x5def63
mov ecx, dword [ebp - 0xac]
push ecx
mov eax, dword [ebp - 0x74]
push eax
mov edx, dword [ebx + 0x14]
push edx
call fcn.005daa78
add esp, 0xc
mov dword [ebp - 0x1b0], eax
cmp dword [ebp - 0x1b0], 0
jne 0x5defcd
test byte [ebp - 0x3c], 8
setne cl
and ecx, 1
push ecx
mov eax, dword [ebp - 0xac]
push eax
push 0
push ebx
call fcn.005da6c0
add esp, 0x10
test eax, eax
jge 0x5def9b
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x5df966
mov ecx, dword [ebx + 0x14]
lea eax, [esi + 4]
add ecx, dword [ebp - 0xac]
mov dword [ebp - 0x1b0], ecx
lea ecx, [esi + 4]
sub eax, dword [ebx + 0x14]
mov edx, dword [ebx + 0x20]
sar eax, 8
mov byte [edx], al
sub ecx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x20]
and cl, 0xff
mov byte [eax + 1], cl
add dword [ebx + 0x20], 2
jmp 0x5df014
mov edx, dword [ebp - 0x1b0]
xor ecx, ecx
mov eax, dword [ebp - 0x1b0]
mov cl, byte [edx + 1]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 2]
or ecx, edx
jne 0x5df014
mov ecx, dword [ebp - 0x74]
push ecx
mov eax, dword [ebp + 0x20]
push eax
push esi
mov edx, dword [ebp - 0x1b0]
push edx
call fcn.005daec0
add esp, 0x10
test eax, eax
je 0x5df014
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x28
jmp 0x5df966
mov byte [esi], 0x5d
mov byte [esi + 1], 0
mov byte [esi + 2], 6
add esi, 3
mov byte [esi], 0x52
mov edx, dword [ebp - 0x1b0]
sub edx, dword [ebx + 0x14]
sar edx, 8
mov byte [esi + 1], dl
mov ecx, dword [ebp - 0x1b0]
sub ecx, dword [ebx + 0x14]
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 - 0x44], 9
add esi, 3
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5df95e
mov dword [ebp - 0x20], 0xffffffff
jmp 0x5df95e
xor ecx, ecx
lea eax, [ebp - 0x190]
mov dword [ebp - 0x194], ecx
mov dword [ebp - 0x190], ecx
mov dword [ebp - 0x19c], eax
jmp 0x5df13e
mov edx, dword [ebp - 0x5c]
inc dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x69
jg 0x5df0b7
je 0x5df0e8
sub ecx, 0x2d
je 0x5df0c8
sub ecx, 0x1d
je 0x5df0d6
sub ecx, 0xb
je 0x5df114
sub ecx, 3
je 0x5df122
jmp 0x5df12d
sub ecx, 0x6d
je 0x5df0f3
sub ecx, 6
je 0x5df0fe
sub ecx, 5
je 0x5df109
jmp 0x5df12d
lea eax, [ebp - 0x194]
mov dword [ebp - 0x19c], eax
jmp 0x5df13e
mov edx, dword [ebp - 0x19c]
or dword [edx], 0x80000
or dword [ebx + 0x44], 0x10
jmp 0x5df13e
mov ecx, dword [ebp - 0x19c]
or dword [ecx], 1
jmp 0x5df13e
mov eax, dword [ebp - 0x19c]
or dword [eax], 2
jmp 0x5df13e
mov edx, dword [ebp - 0x19c]
or dword [edx], 4
jmp 0x5df13e
mov ecx, dword [ebp - 0x19c]
or dword [ecx], 8
jmp 0x5df13e
mov eax, dword [ebp - 0x19c]
or dword [eax], 0x200
jmp 0x5df13e
mov edx, dword [ebp - 0x19c]
or dword [edx], 0x40
jmp 0x5df13e
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xc
dec dword [ebp - 0x5c]
jmp 0x5df966
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x5df15a
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3a
jne 0x5df090
mov edx, dword [ebp - 0x3c]
or edx, dword [ebp - 0x190]
mov eax, dword [ebp - 0x194]
not eax
and edx, eax
mov dword [ebp - 0xa8], edx
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
jne 0x5df20f
mov ecx, dword [ebx + 0x14]
add ecx, 3
cmp esi, ecx
jne 0x5df1a6
cmp dword [ebp + 0x28], 0
je 0x5df19b
mov eax, dword [ebp + 0x28]
cmp dword [eax], 6
jne 0x5df1a6
mov edx, dword [ebp - 0xa8]
mov dword [ebx + 0x40], edx
jmp 0x5df1f7
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0xa8]
and eax, 7
and ecx, 7
cmp ecx, eax
je 0x5df1c9
mov byte [esi], 0x19
inc esi
mov dl, byte [ebp - 0xa8]
and dl, 7
mov byte [esi], dl
inc esi
test byte [ebp - 0xa7], 2
setne cl
and ecx, 1
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
xor eax, 1
mov dword [ebp - 0x1c], eax
test byte [ebp - 0xa8], 1
je 0x5df1f2
mov edx, pe_nt_image_headers32
jmp 0x5df1f4
xor edx, edx
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp + 8]
mov dword [edx], eax
xor ecx, ecx
mov dword [ebp - 0x64], ecx
jmp 0x5df95e
mov dword [ebp - 0x14], 0x5e
inc dword [ebp - 0x5c]
jmp 0x5df248
test byte [ebp - 0x3b], 0x10
je 0x5df22a
mov dword [ebp - 0x14], 0x5e
jmp 0x5df248
inc dword [ebx + 0x30]
mov ecx, dword [ebx + 0x30]
sar ecx, 8
mov byte [esi + 3], cl
mov al, byte [ebx + 0x30]
and al, 0xff
mov byte [esi + 4], al
mov dword [ebp - 0xb4], 2
cmp dword [ebp - 0x14], 0x5d
jl 0x5df252
mov edx, esi
jmp 0x5df254
xor edx, edx
mov dword [ebp - 0x64], edx
mov al, byte [ebp - 0x14]
mov byte [esi], al
mov dword [ebp - 0x50], esi
mov ecx, dword [ebx + 0x48]
mov dword [ebp - 0x38], ecx
xor ecx, ecx
mov dword [ebp - 0x44], ecx
cmp dword [ebp + 0x28], 0
jne 0x5df274
xor eax, eax
jmp 0x5df277
lea eax, [ebp - 0x44]
push eax
push ebx
mov edx, dword [ebp + 0x20]
push edx
lea ecx, [ebp - 0xb8]
push ecx
lea ecx, [ebp - 0xbc]
push ecx
mov eax, dword [ebp - 0xb4]
push eax
mov edx, dword [ebp - 0x9c]
push edx
cmp dword [ebp - 0x14], 0x5a
je 0x5df2a9
cmp dword [ebp - 0x14], 0x5b
je 0x5df2a9
xor ecx, ecx
jmp 0x5df2ae
mov ecx, 1
push ecx
lea edx, [ebp - 0x5c]
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 0x50]
push eax
push edx
push ecx
mov eax, dword [ebp - 0x3c]
and eax, 7
push eax
mov edx, dword [ebp - 0xa8]
push edx
call fcn.005df980
add esp, 0x34
test eax, eax
je 0x5df966
cmp dword [ebp - 0x14], 0x60
jne 0x5df38a
cmp dword [ebp + 0x28], 0
jne 0x5df38a
mov dword [ebp - 0x1b4], esi
xor ecx, ecx
mov dword [ebp - 0x1b8], ecx
inc dword [ebp - 0x1b8]
xor edx, edx
mov eax, dword [ebp - 0x1b4]
xor ecx, ecx
mov dl, byte [eax + 1]
mov eax, dword [ebp - 0x1b4]
shl edx, 8
mov cl, byte [eax + 2]
or edx, ecx
add dword [ebp - 0x1b4], edx
mov edx, dword [ebp - 0x1b4]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x55
jne 0x5df2fb
xor eax, eax
mov al, byte [esi + 3]
cmp eax, 0x66
jne 0x5df35b
cmp dword [ebp - 0x1b8], 1
jle 0x5df352
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x36
jmp 0x5df966
mov dword [ebp - 0x14], 0x66
jmp 0x5df38a
cmp dword [ebp - 0x1b8], 2
jle 0x5df372
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1b
jmp 0x5df966
cmp dword [ebp - 0x1b8], 1
jne 0x5df38a
or edx, 0xffffffff
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x29
je 0x5df3a4
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xe
jmp 0x5df966
cmp dword [ebp + 0x28], 0
je 0x5df3f8
mov edx, dword [ebp + 0x28]
mov ecx, 0x7fffffeb
mov edi, dword [ebp - 0x44]
add edi, 0xfffffffa
sub ecx, dword [edx]
cmp ecx, edi
jge 0x5df3cc
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x5df966
mov ecx, dword [ebp + 0x28]
mov edx, dword [ebp - 0x44]
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 0x5df95e
cmp dword [ebp - 0x14], 0x66
mov esi, dword [ebp - 0x50]
je 0x5df95e
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x58], ecx
cmp dword [ebp - 0x14], 0x5d
jl 0x5df489
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5df44d
cmp dword [ebp - 0xbc], 0
jl 0x5df43d
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x58], 1
jmp 0x5df444
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x2c], 0xffffffff
jmp 0x5df46e
cmp dword [ebp - 0xbc], 0
jl 0x5df46e
cmp dword [ebp - 0xb8], 0
jge 0x5df46e
mov eax, dword [ebp - 0xbc]
or eax, dword [ebp - 0x38]
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 0
jl 0x5df95e
mov edx, dword [ebp - 0xb8]
mov dword [ebp - 0x24], edx
jmp 0x5df95e
cmp dword [ebp - 0x14], 0x58
jne 0x5df95e
cmp dword [ebp - 0xb8], 0
jl 0x5df95e
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0x24], ecx
jmp 0x5df95e
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x60], eax
push 0
mov edx, dword [ebp - 0x3c]
push edx
mov ecx, dword [ebx + 0x30]
push ecx
mov eax, dword [ebp + 0x14]
push eax
lea edx, [ebp - 0x5c]
push edx
call fcn.005d9d08
add esp, 0x14
mov edi, eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x5df966
test edi, edi
jge 0x5df7fa
mov edx, edi
neg edx
cmp edx, 0x1a
jne 0x5df51b
mov ecx, dword [ebp - 0x5c]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x5c
jne 0x5df50f
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x45
jne 0x5df50f
add dword [ebp - 0x5c], 2
jmp 0x5df95e
mov dword [ebp - 0x54], 1
jmp 0x5df95e
mov ecx, edi
neg ecx
cmp ecx, 0x19
je 0x5df95e
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5df547
mov eax, edi
neg eax
cmp eax, 5
jle 0x5df547
mov edx, edi
neg edx
cmp edx, 0x17
jge 0x5df547
mov dword [ebp - 0x20], 0xffffffff
mov ecx, dword [ebp - 0x20]
mov edx, edi
neg edx
mov dword [ebp - 0x2c], ecx
cmp edx, 0x1b
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
jne 0x5df66a
mov ecx, dword [ebx + 0x20]
mov dword [ebp - 0x6c], ecx
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3c
jne 0x5df57c
mov ecx, 0x3e
jmp 0x5df581
mov ecx, 0x27
mov dword [ebp - 0xc0], ecx
xor eax, eax
mov dword [ebp - 0xb4], eax
xor edx, edx
mov dword [ebp - 0x9c], edx
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x2b
je 0x5df632
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x2d
je 0x5df632
mov dword [ebp - 0x1bc], 1
mov eax, dword [ebp - 0x5c]
inc eax
jmp 0x5df5e8
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 4
jne 0x5df5da
xor edx, edx
mov dword [ebp - 0x1bc], edx
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 0x10
je 0x5df5f9
inc eax
cmp byte [eax], 0
je 0x5df5f9
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0xc0]
jne 0x5df5c5
movzx eax, byte [eax]
cmp eax, dword [ebp - 0xc0]
je 0x5df612
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x39
jmp 0x5df95e
cmp dword [ebp - 0x1bc], 0
je 0x5df623
inc dword [ebp - 0x5c]
jmp 0x5dee07
mov dword [ebp - 0x98], 1
jmp 0x5dec8f
mov eax, dword [ebp - 0x5c]
add eax, 2
jmp 0x5df63b
inc eax
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x673525], 4
jne 0x5df63a
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, dword [ebp - 0xc0]
je 0x5df662
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x39
jmp 0x5df95e
inc dword [ebp - 0x5c]
jmp 0x5dee07
mov eax, edi
neg eax
cmp eax, 0x1c
jne 0x5df6db
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3c
je 0x5df69a
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x27
je 0x5df69a
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x7b
jne 0x5df6db
xor edx, edx
mov dword [ebp - 0x98], edx
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3c
jne 0x5df6b8
mov edx, 0x3e
jmp 0x5df6d0
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x27
jne 0x5df6cb
mov edx, 0x27
jmp 0x5df6d0
mov edx, 0x7d
mov dword [ebp - 0xc0], edx
jmp 0x5dec8f
mov eax, edi
neg eax
cmp eax, 0x1d
jl 0x5df75a
neg edi
add edi, 0xffffffe3
mov dword [ebp - 0xac], edi
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5df6fc
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x64], esi
mov byte [esi], 0x51
inc esi
mov ecx, dword [ebp - 0xac]
sar ecx, 8
mov byte [esi], cl
mov cl, byte [ebp - 0xac]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
cmp dword [ebp - 0xac], 0x20
jge 0x5df735
mov ecx, dword [ebp - 0xac]
mov eax, 1
shl eax, cl
jmp 0x5df73a
mov eax, 1
or dword [ebx + 0x3c], eax
mov edx, dword [ebp - 0xac]
cmp edx, dword [ebx + 0x38]
jle 0x5df95e
mov ecx, dword [ebp - 0xac]
mov dword [ebx + 0x38], ecx
jmp 0x5df95e
mov ecx, edi
neg ecx
cmp ecx, 0xf
je 0x5df76c
mov eax, edi
neg eax
cmp eax, 0x10
jne 0x5df7d3
mov edx, dword [ebp + 0x14]
push edx
lea ecx, [ebp - 0x1c4]
push ecx
lea eax, [ebp - 0x1c0]
push eax
lea edx, [ebp - 0x5c]
push edx
call fcn.005da0e0
add esp, 0x10
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x1c8], 0
jl 0x5df966
neg edi
cmp edi, 0x10
mov dword [ebp - 0x64], esi
sete cl
and ecx, 1
cmp ecx, dword [ebp - 0x1c0]
je 0x5df7b7
mov al, 0x10
jmp 0x5df7b9
mov al, 0xf
mov byte [esi], al
inc esi
mov dl, byte [ebp - 0x1c8]
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 0x1c4]
mov byte [esi], cl
inc esi
jmp 0x5df95e
mov ecx, edi
neg ecx
cmp ecx, 5
jle 0x5df7e9
mov eax, edi
neg eax
cmp eax, 0x17
jge 0x5df7e9
mov edx, esi
jmp 0x5df7eb
xor edx, edx
mov dword [ebp - 0x64], edx
mov eax, edi
neg al
mov byte [esi], al
inc esi
jmp 0x5df95e
cmp dword [ebp - 0x74], 0
je 0x5df81d
cmp edi, 0x7f
jle 0x5df81d
lea ecx, [ebp - 0xcc]
push ecx
push edi
call fcn.005e9c9c
add esp, 8
mov dword [ebp - 0xc4], eax
jmp 0x5df884
mov ecx, edi
mov byte [ebp - 0xcc], cl
mov dword [ebp - 0xc4], 1
jmp 0x5df884
mov dword [ebp - 0xc4], 1
mov eax, edi
mov byte [ebp - 0xcc], al
cmp dword [ebp - 0x74], 0
je 0x5df884
cmp edi, 0xc0
jl 0x5df884
jmp 0x5df86e
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0xc4]
mov cl, byte [edx]
mov byte [ebp + eax - 0xcc], cl
inc dword [ebp - 0xc4]
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
and ecx, 0xc0
cmp ecx, 0x80
je 0x5df853
mov dword [ebp - 0x64], esi
test byte [ebp - 0x3c], 1
je 0x5df891
mov al, 0x1d
jmp 0x5df893
mov al, 0x1c
mov byte [esi], al
inc esi
xor edi, edi
lea eax, [ebp - 0xcc]
mov dword [ebp - 0x1d0], eax
cmp edi, dword [ebp - 0xc4]
jge 0x5df8c6
mov edx, dword [ebp - 0x1d0]
mov cl, byte [edx]
mov byte [esi], cl
inc esi
inc edi
inc dword [ebp - 0x1d0]
cmp edi, dword [ebp - 0xc4]
jl 0x5df8ac
xor ecx, ecx
mov cl, byte [ebp - 0xcc]
cmp ecx, 0xd
je 0x5df8e0
xor eax, eax
mov al, byte [ebp - 0xcc]
cmp eax, 0xa
jne 0x5df8e4
or dword [ebx + 0x44], 0x20
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5df935
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0xc4], 1
je 0x5df906
cmp dword [ebp - 0x30], 0
jne 0x5df92a
xor ecx, ecx
mov cl, byte [ebp - 0xcc]
or ecx, dword [ebp - 0x30]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0xc4], 1
je 0x5df95e
xor eax, eax
mov al, byte [esi - 1]
or eax, dword [ebx + 0x48]
mov dword [ebp - 0x24], eax
jmp 0x5df95e
or edx, 0xffffffff
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edx
jmp 0x5df95e
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0xc4], 1
je 0x5df950
cmp dword [ebp - 0x30], 0
jne 0x5df95e
xor ecx, ecx
mov cl, byte [esi - 1]
or ecx, dword [ebp - 0x30]
or ecx, dword [ebx + 0x48]
mov dword [ebp - 0x24], ecx
inc dword [ebp - 0x5c]
jmp 0x5dbc16
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp - 0x5c]
mov dword [eax], edx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret