Function at 0x5b0228
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 0x5b02ce
mov eax, pe_nt_image_headers32
jmp 0x5b02d0
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 0x5b037d
mov edx, dword [ebx + 0x10]
add edx, 0x1000
cmp esi, edx
jbe 0x5b02ff
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x34
jmp 0x5b4140
mov eax, dword [ebp - 0x54]
cmp esi, eax
jae 0x5b0309
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 0x5b032e
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x14
jmp 0x5b4140
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 0x5b0375
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x58]
cmp edx, ecx
jbe 0x5b0378
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 0x5b0378
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x54], esi
jmp 0x5b039a
mov eax, dword [ebx + 0x10]
add eax, 0x1000
mov edx, dword [ebx + 0x20]
cmp eax, edx
jae 0x5b039a
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x34
jmp 0x5b4140
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x5b0402
test edi, edi
je 0x5b0402
cmp edi, 0x5c
jne 0x5b03c2
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x45
jne 0x5b03c2
xor eax, eax
mov dword [ebp - 0x60], eax
inc dword [ebp - 0x68]
jmp 0x5b4138
mov edx, dword [ebp - 0x74]
test edx, edx
je 0x5b03e2
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x5b03dd
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
call fcn.005af69c
xor eax, eax
mov dword [ebp - 0x74], eax
test byte [ebp - 0x47], 0x40
je 0x5b4001
mov dword [ebp - 0x74], esi
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, esi
call fcn.005af670
mov esi, eax
jmp 0x5b4001
cmp edi, 0x2a
je 0x5b0427
cmp edi, 0x2b
je 0x5b0427
cmp edi, 0x3f
je 0x5b0427
cmp edi, 0x7b
jne 0x5b0423
mov eax, dword [ebp - 0x68]
inc eax
call fcn.005ae888
test eax, eax
jne 0x5b0427
xor edx, edx
jmp 0x5b042c
mov edx, 1
mov dword [ebp - 0xa0], edx
mov ecx, dword [ebp - 0xa0]
test ecx, ecx
jne 0x5b0467
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x5b0467
mov edx, dword [ebp - 0x4c]
add dword [ebp - 0x4c], 0xffffffff
test edx, edx
jg 0x5b0467
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x5b0462
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
call fcn.005af69c
xor eax, eax
mov dword [ebp - 0x74], eax
test byte [ebp - 0x48], 8
je 0x5b0522
mov edx, dword [ebx + 0xc]
test byte [edx + edi], 1
jne 0x5b4138
cmp edi, 0x23
jne 0x5b0522
jmp 0x5b0503
mov ecx, dword [ebx + 0x50]
test ecx, ecx
je 0x5b04bf
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebp - 0x68]
cmp eax, edx
jbe 0x5b04b4
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.005be5d0
test eax, eax
jne 0x5b04b8
xor edx, edx
jmp 0x5b04f6
mov edx, 1
jmp 0x5b04f6
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x54]
sub ecx, eax
mov edx, dword [ebp - 0x68]
cmp ecx, edx
jb 0x5b04ed
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
mov dl, byte [ebx + 0x58]
cmp al, dl
jne 0x5b04ed
mov ecx, dword [ebx + 0x54]
dec ecx
je 0x5b04f1
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
mov cl, byte [ebx + 0x59]
cmp dl, cl
je 0x5b04f1
xor edx, edx
jmp 0x5b04f6
mov edx, 1
test edx, edx
je 0x5b0503
mov eax, dword [ebx + 0x54]
dec eax
add dword [ebp - 0x68], eax
jmp 0x5b0513
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
test al, al
jne 0x5b0489
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
test cl, cl
jne 0x5b4138
xor edi, edi
test byte [ebp - 0x47], 0x40
je 0x5b0543
mov eax, dword [ebp - 0xa0]
test eax, eax
jne 0x5b0543
mov dword [ebp - 0x74], esi
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, esi
call fcn.005af670
mov esi, eax
mov edx, edi
cmp edx, 0x3f
jg 0x5b0591
je 0x5b1c70
cmp edx, 0x29
jg 0x5b0573
je 0x5b05c9
sub edx, 1
jb 0x5b05c9
sub edx, 0x23
je 0x5b0649
sub edx, 4
je 0x5b2994
jmp 0x5b4001
sub edx, 0x2a
je 0x5b1c52
dec edx
je 0x5b1c60
sub edx, 3
je 0x5b0657
jmp 0x5b4001
cmp edx, 0x5e
jg 0x5b05b8
je 0x5b0626
sub edx, 0x5b
je 0x5b06a1
dec edx
je 0x5b3c8a
dec edx
je 0x5b0689
jmp 0x5b4001
sub edx, 0x7b
je 0x5b1c1f
dec edx
je 0x5b05c9
jmp 0x5b4001
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 0x5b061c
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 0x5b0612
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x14
jmp 0x5b4140
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x54]
sub esi, ecx
add dword [eax], esi
mov eax, 1
jmp 0x5b414a
test byte [ebp - 0x48], 2
je 0x5b063b
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x5b063b
mov dword [ebp - 0x2c], 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov byte [esi], 0x1a
inc esi
jmp 0x5b4138
xor eax, eax
mov dword [ebp - 0x70], eax
mov byte [esi], 0x1b
inc esi
jmp 0x5b4138
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x5b0666
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 0x5b067f
mov dl, 0xd
jmp 0x5b0681
mov dl, 0xc
mov byte [esi], dl
inc esi
jmp 0x5b4138
test byte [ebx + 0x43], 2
je 0x5b4001
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x40
jmp 0x5b4140
mov dword [ebp - 0x70], esi
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x3a
je 0x5b06c4
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x2e
je 0x5b06c4
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x3d
jne 0x5b06f3
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.005af528
test eax, eax
je 0x5b06f3
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x3a
jne 0x5b06e4
mov edx, 0xd
jmp 0x5b06e9
mov edx, 0x1f
mov eax, dword [ebp + 0x1c]
mov dword [eax], edx
jmp 0x5b4140
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 0x5b0737
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x45
jne 0x5b0719
inc dword [ebp - 0x68]
jmp 0x5b06fb
push 3
push 0x7eece5
mov ecx, dword [ebp - 0x68]
inc ecx
push ecx
call sub.MSVCRT.DLL_strncmp
add esp, 0xc
test eax, eax
jne 0x5b0752
add dword [ebp - 0x68], 3
jmp 0x5b06fb
mov eax, dword [ebp - 0x94]
test eax, eax
jne 0x5b0752
cmp edi, 0x5e
jne 0x5b0752
mov dword [ebp - 0x94], 1
jmp 0x5b06fb
cmp edi, 0x5d
jne 0x5b078a
test byte [ebx + 0x43], 2
je 0x5b078a
mov edx, dword [ebp - 0x94]
test edx, edx
je 0x5b076b
mov cl, 0xd
jmp 0x5b076d
mov cl, 0x6d
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x5b077f
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
jmp 0x5b4138
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 0x5b1a0c
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x5b08a3
cmp edi, 0x7f
jle 0x5b08a3
mov edx, dword [ebp - 0x68]
movzx edi, byte [edx]
cmp edi, 0xc0
jl 0x5b08a3
mov eax, edi
and eax, 0x3f
xor edx, edx
mov dl, byte [eax + 0x7ef150]
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 + 0x7eed94]
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 0x5b089a
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 0x5b0860
mov eax, dword [ebp - 0xe4]
add dword [ebp - 0x68], eax
mov edx, dword [ebp + 8]
test edx, edx
je 0x5b08c9
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 0x5b08f5
cmp edi, 0x5c
jne 0x5b1427
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x45
jne 0x5b1427
xor eax, eax
mov dword [ebp - 0x60], eax
inc dword [ebp - 0x68]
jmp 0x5b19eb
cmp edi, 0x5b
jne 0x5b0b9d
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x3a
je 0x5b0922
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x2e
je 0x5b0922
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x3d
jne 0x5b0b9d
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.005af528
test eax, eax
je 0x5b0b9d
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 0x5b095f
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x1f
jmp 0x5b4140
add dword [ebp - 0x68], 2
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x5e
jne 0x5b0984
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.005af56c
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
test edx, edx
jge 0x5b09b2
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x1e
jmp 0x5b4140
test byte [ebp - 0x48], 1
je 0x5b09cb
mov eax, dword [ebp - 0xf0]
cmp eax, 2
jg 0x5b09cb
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 + 0x7ee18c]
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 + 0x7ee190]
mov dword [ebp - 0xf4], ecx
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax*4 + 0x7ee194]
mov dword [ebp - 0xf8], edx
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
jl 0x5b0acd
mov eax, dword [ebp - 0xf8]
test eax, eax
jl 0x5b0a86
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 0x5b0a62
jmp 0x5b0acd
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 0x5b0aa9
mov edx, dword [ebp - 0xf8]
test edx, edx
jge 0x5b0add
neg dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xf8]
dec ecx
jne 0x5b0aef
and byte [ebp - 0x21b], 0xc3
jmp 0x5b0b01
mov eax, dword [ebp - 0xf8]
cmp eax, 2
jne 0x5b0b01
and byte [ebp - 0x211], 0x7f
mov edx, dword [ebp - 0xec]
test edx, edx
je 0x5b0b4b
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 0x5b0b25
jmp 0x5b0b87
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 0x5b0b65
mov ecx, dword [ebp - 0x6c]
inc ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0xac], 0xa
jmp 0x5b19eb
cmp edi, 0x5c
jne 0x5b1427
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.005ae384
mov edi, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x5b4140
mov ecx, edi
neg ecx
cmp ecx, 5
jne 0x5b0bd9
mov edi, 8
jmp 0x5b0c3a
mov eax, edi
neg eax
cmp eax, 0x16
jne 0x5b0be9
mov edi, 0x58
jmp 0x5b0c3a
mov eax, edi
neg eax
cmp eax, 0x11
jne 0x5b0bf9
mov edi, 0x52
jmp 0x5b0c3a
mov eax, edi
neg eax
cmp eax, 0x1a
jne 0x5b0c2d
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x5c
jne 0x5b0c21
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 2]
cmp dl, 0x45
jne 0x5b0c21
add dword [ebp - 0x68], 2
jmp 0x5b19eb
mov dword [ebp - 0x60], 1
jmp 0x5b19eb
mov ecx, edi
neg ecx
cmp ecx, 0x19
je 0x5b19eb
test edi, edi
jge 0x5b1427
mov eax, dword [ebx + 8]
mov dword [ebp - 0x100], eax
add dword [ebp - 0xac], 2
mov edx, dword [ebp + 8]
test edx, edx
jne 0x5b0e5a
mov ecx, edi
neg ecx
add ecx, 0xfffffffa
cmp ecx, 5
ja case.default.0x5b0c6d
jmp dword [ecx*4 + 0x5b0c74]
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 0x5b0ca9
jmp 0x5b19eb
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 0x5b0cf7
jmp 0x5b19eb
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 0x5b0d40
jmp 0x5b19eb
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 0x5b0d91
jmp 0x5b19eb
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 0x5b0dd6
and byte [ebp - 0x1fb], 0xf7
jmp 0x5b19eb
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 0x5b0e2a
or byte [ebp - 0x1fb], 8
jmp 0x5b19eb
cmp edi, 0xfffffff9
je 0x5b19eb
cmp edi, 0xfffffffa
je 0x5b19eb
cmp edi, 0xfffffff5
je 0x5b19eb
cmp edi, 0xfffffff6
je 0x5b19eb
cmp edi, 0xfffffff7
je 0x5b19eb
cmp edi, 0xfffffff8
je 0x5b19eb
mov eax, edi
neg eax
cmp eax, 0x13
jne 0x5b0fbd
or byte [ebp - 0x1fb], 2
or byte [ebp - 0x1f8], 1
or byte [ebp - 0x1e8], 1
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x5b19eb
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.005be8c0
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.005be8c0
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.005be8c0
add dword [ebp - 0x84], eax
mov eax, 0x200a
mov edx, dword [ebp - 0x84]
call fcn.005be8c0
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.005be8c0
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.005be8c0
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.005be8c0
add dword [ebp - 0x84], eax
jmp 0x5b19eb
mov ecx, edi
neg ecx
cmp ecx, 0x12
jne 0x5b11da
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x104], 0xff
mov edx, edi
dec edx
je 0x5b0ff3
sub edx, 3
je 0x5b0ffc
sub edx, 0x10
je 0x5b1005
jmp 0x5b100c
xor dword [ebp - 0x104], 2
jmp 0x5b100c
xor dword [ebp - 0x104], 1
jmp 0x5b100c
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 0x5b0fd8
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x5b19eb
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.005be8c0
add dword [ebp - 0x84], eax
mov eax, 0x167f
mov edx, dword [ebp - 0x84]
call fcn.005be8c0
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.005be8c0
add dword [ebp - 0x84], eax
mov eax, 0x180d
mov edx, dword [ebp - 0x84]
call fcn.005be8c0
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.005be8c0
add dword [ebp - 0x84], eax
mov eax, 0x1fff
mov edx, dword [ebp - 0x84]
call fcn.005be8c0
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.005be8c0
add dword [ebp - 0x84], eax
mov eax, 0x202e
mov edx, dword [ebp - 0x84]
call fcn.005be8c0
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.005be8c0
add dword [ebp - 0x84], eax
mov eax, 0x205e
mov edx, dword [ebp - 0x84]
call fcn.005be8c0
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.005be8c0
add dword [ebp - 0x84], eax
mov eax, 0x2fff
mov edx, dword [ebp - 0x84]
call fcn.005be8c0
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.005be8c0
add dword [ebp - 0x84], eax
mov eax, 0x7fffffff
mov edx, dword [ebp - 0x84]
call fcn.005be8c0
add dword [ebp - 0x84], eax
jmp 0x5b19eb
mov ecx, edi
neg ecx
cmp ecx, 0x15
jne 0x5b1258
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 0x5b19eb
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.005be8c0
add dword [ebp - 0x84], eax
mov eax, 0x2029
mov edx, dword [ebp - 0x84]
call fcn.005be8c0
add dword [ebp - 0x84], eax
jmp 0x5b19eb
mov ecx, edi
neg ecx
cmp ecx, 0x14
jne 0x5b1355
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x108], 0xff
mov edx, edi
dec edx
je 0x5b1289
sub edx, 0xf
je 0x5b12a7
jmp 0x5b12ae
xor dword [ebp - 0x108], 4
xor dword [ebp - 0x108], 8
xor dword [ebp - 0x108], 0x10
xor dword [ebp - 0x108], 0x20
jmp 0x5b12ae
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 0x5b1273
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x5b19eb
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.005be8c0
add dword [ebp - 0x84], eax
mov eax, 0x2027
mov edx, dword [ebp - 0x84]
call fcn.005be8c0
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.005be8c0
add dword [ebp - 0x84], eax
mov eax, 0x7fffffff
mov edx, dword [ebp - 0x84]
call fcn.005be8c0
add dword [ebp - 0x84], eax
jmp 0x5b19eb
mov ecx, edi
neg ecx
cmp ecx, 0x10
je 0x5b136b
mov eax, edi
neg eax
cmp eax, 0xf
jne 0x5b13fb
mov edx, dword [ebp + 0x1c]
lea ecx, [ebp - 0x110]
push edx
lea edx, [ebp - 0x10c]
lea eax, [ebp - 0x68]
call fcn.005ae760
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0x114]
test ecx, ecx
jl 0x5b4140
mov dword [ebp - 0x7c], 1
neg edi
cmp edi, 0x10
sete al
and eax, 1
mov edx, dword [ebp - 0x10c]
cmp eax, edx
je 0x5b13b7
mov cl, 3
jmp 0x5b13b9
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 0x5b19eb
test byte [ebp - 0x48], 0x40
je 0x5b140f
mov eax, dword [ebp + 0x1c]
mov dword [eax], 7
jmp 0x5b4140
sub dword [ebp - 0xac], 2
mov edx, dword [ebp - 0x68]
movzx edi, byte [edx]
jmp 0x5b1427
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 0x5b143d
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 2]
cmp dl, 0x45
je 0x5b141e
mov ecx, dword [ebp - 0x68]
cmp edi, 0xd
mov dword [ebp - 0xdc], ecx
je 0x5b1450
cmp edi, 0xa
jne 0x5b1454
or dword [ebx + 0x44], 0x20
mov eax, dword [ebp - 0x60]
test eax, eax
jne 0x5b18d4
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x2d
jne 0x5b18d4
add dword [ebp - 0x68], 2
jmp 0x5b1478
add dword [ebp - 0x68], 2
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x5c
jne 0x5b14b6
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x45
je 0x5b1474
jmp 0x5b14b6
add dword [ebp - 0x68], 2
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x5c
jne 0x5b14ad
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x45
jne 0x5b14ad
add dword [ebp - 0x68], 2
jmp 0x5b14b6
mov dword [ebp - 0x60], 1
jmp 0x5b14ca
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x5c
jne 0x5b14ca
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x51
je 0x5b148e
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
test dl, dl
je 0x5b14e4
mov ecx, dword [ebp - 0x60]
test ecx, ecx
jne 0x5b14f2
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x5d
jne 0x5b14f2
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x68], ecx
jmp 0x5b18d4
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x5b15c6
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 0x5b15d3
mov edx, dword [ebp - 0x118]
and edx, 0x3f
xor ecx, ecx
mov cl, byte [edx + 0x7ef150]
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 + 0x7eed94]
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 0x5b15bb
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 0x5b1580
mov edx, dword [ebp - 0x120]
add dword [ebp - 0x68], edx
jmp 0x5b15d3
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 0x5b1671
mov ecx, dword [ebp - 0x118]
cmp ecx, 0x5c
jne 0x5b1671
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.005ae384
mov dword [ebp - 0x118], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x5b4140
mov ecx, dword [ebp - 0x118]
test ecx, ecx
jge 0x5b1671
mov eax, dword [ebp - 0x118]
cmp eax, 0xfffffffb
jne 0x5b1635
mov dword [ebp - 0x118], 8
jmp 0x5b1671
mov edx, dword [ebp - 0x118]
cmp edx, 0xffffffea
jne 0x5b164c
mov dword [ebp - 0x118], 0x58
jmp 0x5b1671
mov ecx, dword [ebp - 0x118]
cmp ecx, 0xffffffef
jne 0x5b1663
mov dword [ebp - 0x118], 0x52
jmp 0x5b1671
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x68], eax
jmp 0x5b18d4
mov edx, dword [ebp - 0x118]
cmp edi, edx
jle 0x5b1689
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 8
jmp 0x5b4140
mov eax, dword [ebp - 0x118]
cmp edi, eax
je 0x5b18d4
mov edx, dword [ebp - 0x118]
cmp edx, 0xd
je 0x5b16ad
mov ecx, dword [ebp - 0x118]
cmp ecx, 0xa
jne 0x5b16b1
or dword [ebx + 0x44], 0x20
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x5b183c
mov edx, dword [ebp - 0x118]
cmp edx, 0xff
jg 0x5b16e3
test byte [ebp - 0x48], 1
je 0x5b183c
mov ecx, dword [ebp - 0x118]
cmp ecx, 0x7f
jle 0x5b183c
mov dword [ebp - 0x7c], 1
test byte [ebp - 0x48], 1
je 0x5b17fe
mov dword [ebp - 0x130], edi
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x134], eax
jmp 0x5b17d8
mov edx, dword [ebp - 0x128]
cmp edx, edi
jb 0x5b1729
mov ecx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x118]
cmp ecx, eax
jbe 0x5b17d8
mov edx, dword [ebp - 0x128]
cmp edi, edx
jbe 0x5b174b
mov ecx, edi
dec ecx
mov eax, dword [ebp - 0x12c]
cmp ecx, eax
ja 0x5b174b
mov edi, dword [ebp - 0x128]
jmp 0x5b17d8
mov eax, dword [ebp - 0x118]
mov edx, dword [ebp - 0x12c]
cmp eax, edx
jae 0x5b177a
mov ecx, dword [ebp - 0x118]
inc ecx
mov eax, dword [ebp - 0x128]
cmp ecx, eax
jb 0x5b177a
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0x118], edx
jmp 0x5b17d8
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x12c]
cmp ecx, eax
jne 0x5b179b
mov edx, dword [ebp - 0x84]
mov byte [edx], 1
inc dword [ebp - 0x84]
jmp 0x5b17c1
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.005be8c0
add dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x12c]
call fcn.005be8c0
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.005af6c4
test eax, eax
jne 0x5b170b
mov eax, dword [ebp - 0x84]
mov byte [eax], 2
mov eax, edi
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.005be8c0
add dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x118]
call fcn.005be8c0
add dword [ebp - 0x84], eax
jmp 0x5b19eb
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 0x5b19eb
mov edx, dword [ebp - 0x118]
cmp edi, edx
jg 0x5b19eb
mov ecx, edi
mov al, 1
and ecx, 7
mov edx, edi
shl al, cl
test edx, edx
jns 0x5b1882
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1fc], al
test byte [ebp - 0x48], 1
je 0x5b18c4
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 0x5b18ba
add eax, 7
sar eax, 3
or byte [ebp + eax - 0x1fc], dl
inc edi
mov edx, dword [ebp - 0x118]
cmp edi, edx
jle 0x5b1870
jmp 0x5b19eb
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x5b1997
cmp edi, 0xff
jg 0x5b18fa
test byte [ebp - 0x48], 1
je 0x5b1997
cmp edi, 0x7f
jle 0x5b1997
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.005be8c0
add dword [ebp - 0x84], eax
test byte [ebp - 0x48], 1
je 0x5b19eb
mov edx, edi
test edx, edx
jns 0x5b1936
add edx, 0x7f
sar edx, 7
xor ecx, ecx
mov cl, byte [edx + 0x7fa0bc]
shl ecx, 7
mov eax, edi
and eax, 0x8000007f
jns 0x5b1952
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx edx, word [ecx*2 + 0x7f02bc]
mov ecx, dword [edx*8 + 0x7ef478]
add ecx, edi
mov dword [ebp - 0x13c], ecx
cmp ecx, edi
je 0x5b19eb
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.005be8c0
add dword [ebp - 0x84], eax
jmp 0x5b19eb
mov ecx, edi
mov dl, 1
and ecx, 7
mov eax, edi
shl dl, cl
test eax, eax
jns 0x5b19a9
add eax, 7
sar eax, 3
or byte [ebp + eax - 0x1fc], dl
test byte [ebp - 0x48], 1
je 0x5b19df
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 0x5b19d5
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 0x5b1a0c
cmp edi, 0x5d
jne 0x5b07d9
mov eax, dword [ebp - 0x60]
test eax, eax
jne 0x5b07d9
test edi, edi
jne 0x5b1a1e
mov edx, dword [ebp + 0x1c]
mov dword [edx], 6
jmp 0x5b4140
mov ecx, dword [ebp - 0xac]
dec ecx
jne 0x5b1ad8
mov eax, dword [ebp - 0x7c]
test eax, eax
jne 0x5b1ad8
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x5b1a58
mov ecx, dword [ebp - 0x94]
test ecx, ecx
je 0x5b1a58
mov eax, dword [ebp - 0xb0]
cmp eax, 0x80
jge 0x5b1ad8
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x94]
test ecx, ecx
je 0x5b1a8f
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x5b1a77
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 0x5b4138
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x5b1abd
mov edx, dword [ebp - 0xb0]
cmp edx, 0x7f
jle 0x5b1abd
lea edx, [ebp - 0xd8]
mov eax, dword [ebp - 0xb0]
call fcn.005be8c0
mov dword [ebp - 0xd0], eax
jmp 0x5b4053
mov cl, byte [ebp - 0xb0]
mov byte [ebp - 0xd8], cl
mov dword [ebp - 0xd0], 1
jmp 0x5b4053
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x5b1ae7
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 0x5b1b9f
mov edx, dword [ebp - 0x98]
test edx, edx
jne 0x5b1b9f
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 0x5b1b30
mov dl, 1
jmp 0x5b1b32
xor edx, edx
mov byte [esi], dl
mov eax, dword [ebp - 0xac]
test eax, eax
jle 0x5b1b75
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 0x5b1b7b
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 0x5b4138
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0x98]
cmp eax, edx
jne 0x5b1bb3
mov cl, 0x4e
jmp 0x5b1bb5
mov cl, 0x4f
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x94]
test eax, eax
je 0x5b1c05
mov edx, dword [ebp + 8]
test edx, edx
jne 0x5b1c17
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 0x5b1bdf
jmp 0x5b1c17
push 0x20
lea ecx, [ebp - 0x1fc]
push ecx
push esi
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
add esi, 0x20
jmp 0x5b4138
mov eax, dword [ebp - 0xa0]
test eax, eax
je 0x5b4001
mov edx, dword [ebp + 0x1c]
push edx
lea ecx, [ebp - 0x1c]
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 0x68]
inc eax
call fcn.005ae8fc
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ecx]
test eax, eax
jne 0x5b4140
jmp 0x5b1c7c
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], 0xffffffff
jmp 0x5b1c7c
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x1c], 0xffffffff
jmp 0x5b1c7c
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x70]
test eax, eax
jne 0x5b1c91
mov edx, dword [ebp + 0x1c]
mov dword [edx], 9
jmp 0x5b4140
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x5b1ca4
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 0x5b1cb2
xor edx, edx
jmp 0x5b1cb7
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 0x5b1cec
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x9c], 1
inc dword [ebp - 0x68]
jmp 0x5b1d08
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x3f
jne 0x5b1d02
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
inc dword [ebp - 0x68]
jmp 0x5b1d08
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x1c
je 0x5b1d1f
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x1d
jne 0x5b1dea
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x5b1d7c
test byte [esi - 1], 0x80
je 0x5b1d7c
lea edx, [esi - 1]
mov dword [ebp - 0x140], edx
jmp 0x5b1d3d
dec dword [ebp - 0x140]
mov ecx, dword [ebp - 0x140]
xor eax, eax
mov al, byte [ecx]
and eax, 0xc0
cmp eax, 0x80
je 0x5b1d37
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 0x5b1d93
movzx edi, byte [esi - 1]
mov eax, dword [ebp - 0x18]
dec eax
jle 0x5b1d93
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 0x5b1ea1
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x5b1ea1
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.005af760
test eax, eax
je 0x5b1ea1
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x9c], 1
jmp 0x5b1ea1
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x1e
jne 0x5b1e4b
mov dword [ebp - 0x14], 0xd
mov eax, dword [ebp - 0x70]
movzx edi, byte [eax + 1]
mov eax, dword [ebp - 0x9c]
test eax, eax
jne 0x5b1ea1
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x5b1ea1
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.005af760
test eax, eax
je 0x5b1ea1
xor edx, edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x9c], 1
jmp 0x5b1ea1
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x17
jae 0x5b210a
mov dword [ebp - 0x14], 0x1a
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x9c]
test eax, eax
movzx edi, byte [edx]
jne 0x5b1ea1
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x5b1ea1
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.005af760
test eax, eax
je 0x5b1ea1
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 0x5b1eb4
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0xf
jne 0x5b1ed2
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 0x5b1ee1
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 0x5b2984
mov edx, dword [ebp - 0x1c]
dec edx
je 0x5b1eff
or dword [ebx + 0x44], 1
mov ecx, dword [ebp - 0x14]
add dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x5b1f56
mov edx, dword [ebp - 0x1c]
inc edx
jne 0x5b1f20
mov cl, byte [ebp - 0x10]
add cl, 0x1f
mov byte [esi], cl
inc esi
jmp 0x5b20b4
mov eax, dword [ebp - 0x1c]
dec eax
jne 0x5b1f34
mov dl, byte [ebp - 0x10]
add dl, 0x23
mov byte [esi], dl
inc esi
jmp 0x5b20b4
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 0x5b20b4
mov ecx, dword [ebp - 0x18]
dec ecx
jne 0x5b1fa4
mov eax, dword [ebp - 0x1c]
inc eax
jne 0x5b1f70
mov dl, byte [ebp - 0x10]
add dl, 0x21
mov byte [esi], dl
inc esi
jmp 0x5b20b4
mov esi, dword [ebp - 0x144]
mov eax, dword [ebp - 0x1c]
dec eax
je 0x5b2984
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 0x5b20b4
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 0x5b2024
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x5b1ff5
cmp edi, 0x80
jl 0x5b1ff5
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 0x5b2016
mov eax, edi
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x148]
test edx, edx
jl 0x5b2016
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 0x5b20b4
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
je 0x5b20b4
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x5b2060
cmp edi, 0x80
jl 0x5b2060
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 0x5b2065
mov ecx, edi
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x148]
test eax, eax
jl 0x5b2081
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 0x5b2098
mov cl, byte [ebp - 0x10]
add cl, 0x23
mov byte [esi], cl
inc esi
jmp 0x5b20b4
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 0x5b20e0
cmp edi, 0x80
jl 0x5b20e0
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 0x5b20e5
mov eax, edi
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x148]
test edx, edx
jl 0x5b27af
mov cl, byte [ebp - 0x148]
mov byte [esi], cl
inc esi
mov al, byte [ebp - 0x14c]
mov byte [esi], al
inc esi
jmp 0x5b27af
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x4e
je 0x5b2135
mov eax, dword [ebp - 0x70]
mov dl, byte [eax]
cmp dl, 0x4f
je 0x5b2135
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x50
je 0x5b2135
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x51
jne 0x5b21db
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x5b2144
mov esi, dword [ebp - 0x70]
jmp 0x5b2984
mov eax, dword [ebp - 0x1c]
dec eax
je 0x5b214e
or dword [ebx + 0x44], 1
mov edx, dword [ebp - 0x18]
test edx, edx
jne 0x5b2168
mov ecx, dword [ebp - 0x1c]
inc ecx
jne 0x5b2168
mov al, byte [ebp - 0x10]
add al, 0x46
mov byte [esi], al
inc esi
jmp 0x5b27af
mov edx, dword [ebp - 0x18]
dec edx
jne 0x5b2181
mov ecx, dword [ebp - 0x1c]
inc ecx
jne 0x5b2181
mov al, byte [ebp - 0x10]
add al, 0x48
mov byte [esi], al
inc esi
jmp 0x5b27af
mov edx, dword [ebp - 0x18]
test edx, edx
jne 0x5b219b
mov ecx, dword [ebp - 0x1c]
dec ecx
jne 0x5b219b
mov al, byte [ebp - 0x10]
add al, 0x4a
mov byte [esi], al
inc esi
jmp 0x5b27af
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 0x5b21c2
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 0x5b27af
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x5e
je 0x5b2205
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x5f
je 0x5b2205
mov eax, dword [ebp - 0x70]
mov dl, byte [eax]
cmp dl, 0x5d
je 0x5b2205
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x60
jne 0x5b2794
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 0x5b223e
mov edx, dword [ebp - 0x70]
mov cl, byte [edx + 3]
cmp cl, 0x66
jne 0x5b223e
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x37
jmp 0x5b4140
mov edx, dword [ebp - 0x1c]
inc edx
jne 0x5b228b
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 0x5b224d
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 0x5b2382
mov eax, dword [ebp - 0x1c]
dec eax
jg 0x5b22eb
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.005af5bc
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 0x5b22d9
mov ecx, dword [ebp - 0x70]
mov byte [ecx], 0x6f
jmp 0x5b2984
mov edx, dword [ebp - 0x70]
mov al, byte [ebp - 0x10]
add al, 0x67
mov byte [edx], al
inc dword [ebp - 0x70]
jmp 0x5b237a
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.005af5bc
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 0x5b233f
xor eax, eax
jmp 0x5b234a
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 0x5b24b6
mov edx, dword [ebp - 0x18]
dec edx
jle 0x5b24a9
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x5b23f4
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 [0x5b4154]
fnstsw ax
sahf
ja 0x5b23d6
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov eax, dword [edx]
sub ecx, eax
mov edx, dword [ebp - 0x164]
cmp ecx, edx
jge 0x5b23e4
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x14
jmp 0x5b4140
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x164]
add dword [eax], edx
jmp 0x5b24a9
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x5b2408
mov eax, dword [ebp - 0x30]
test eax, eax
jge 0x5b2408
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 0x5b24a9
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 0x5b2487
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 0x5b2447
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 0x5b2423
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jle 0x5b24b6
mov eax, dword [ebp - 0x18]
sub dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
test edx, edx
jl 0x5b26d6
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x5b2538
mov eax, dword [ebp - 0x1c]
test eax, eax
jle 0x5b2538
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 [0x5b4154]
fnstsw ax
sahf
ja 0x5b251a
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov eax, dword [edx]
sub ecx, eax
mov edx, dword [ebp - 0x16c]
cmp ecx, edx
jge 0x5b2528
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x14
jmp 0x5b4140
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x16c]
add dword [eax], edx
jmp 0x5b2651
mov ecx, dword [ebp - 0x1c]
dec ecx
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x150]
test eax, eax
jl 0x5b2651
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 0x5b25ad
mov byte [esi], 0x5e
inc esi
mov edx, dword [ebp - 0x158]
test edx, edx
jne 0x5b257e
xor ecx, ecx
jmp 0x5b2588
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 0x5b2632
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 0x5b25e9
mov edx, 4
jmp 0x5b25ee
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 0x5b2614
mov dl, 4
jmp 0x5b2616
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 0x5b25c8
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 0x5b2550
mov edx, dword [ebp - 0x158]
test edx, edx
je 0x5b27af
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 0x5b2690
xor ecx, ecx
jmp 0x5b269e
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 0x5b265f
jmp 0x5b27af
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 0x5b27af
mov edx, dword [ebp - 0x180]
mov cl, byte [edx]
cmp cl, 0x5d
je 0x5b27af
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.005af260
test eax, eax
je 0x5b2764
mov edx, dword [ebp - 0x180]
add byte [edx], 3
jmp 0x5b27af
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 0x5b2741
jmp 0x5b27af
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x6d
je 0x5b2984
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xb
jmp 0x5b4140
mov ecx, dword [ebp - 0x9c]
test ecx, ecx
je 0x5b2984
mov eax, dword [ebp - 0x5c]
mov dl, byte [eax]
cmp dl, 0x27
je 0x5b27da
mov ecx, dword [ebp - 0x5c]
mov al, byte [ecx]
cmp al, 0x41
je 0x5b27da
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx]
cmp cl, 0x34
jne 0x5b2816
mov eax, dword [ebp - 0x5c]
mov dl, byte [eax]
cmp dl, 0x41
jne 0x5b2800
mov ecx, dword [ebp - 0x5c]
mov al, byte [ecx + 3]
cmp al, 0x10
je 0x5b27f9
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx + 3]
cmp cl, 0xf
jne 0x5b2800
mov eax, 2
jmp 0x5b2802
xor eax, eax
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
xor edx, edx
mov dl, byte [ecx + 0x7ef0e0]
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 0x5b2984
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
add ecx, 0xffffffe1
cmp ecx, 0x20
ja case.0x5b284a.31
mov cl, byte [ecx + 0x5b2851]
jmp dword [ecx*4 + 0x5b2872]
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x28
jmp 0x5b2984
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x29
jmp 0x5b2984
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x2a
jmp 0x5b2984
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x2b
jmp 0x5b2984
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x42
jmp 0x5b2984
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x43
jmp 0x5b2984
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x44
jmp 0x5b2984
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x45
jmp 0x5b2984
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x35
jmp 0x5b2984
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x36
jmp 0x5b2984
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x37
jmp 0x5b2984
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x38
jmp 0x5b2984
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 0x5b4138
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 0x5b2ad5
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 2
je 0x5b2ad5
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 0x5b29fb
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x3a
jne 0x5b2a25
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3b
jmp 0x5b4140
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x29
je 0x5b2a3c
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3c
jmp 0x5b4140
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x194]
sub ecx, eax
xor edi, edi
mov dword [ebp - 0x18c], ecx
jmp 0x5b2aab
mov eax, dword [edi*8 + 0x7ee150]
mov edx, dword [ebp - 0x18c]
cmp eax, edx
jne 0x5b2a9c
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 0x5b2a9c
mov cl, byte [edi*8 + 0x7ee154]
mov byte [esi], cl
mov al, byte [esi]
inc esi
cmp al, 0x6e
jne 0x5b2ab5
mov dword [ebx + 0x4c], 1
jmp 0x5b2ab5
mov edx, dword [edi*8 + 0x7ee150]
inc edx
add dword [ebp - 0x190], edx
inc edi
mov ecx, dword [0x7ee188]
cmp edi, ecx
jl 0x5b2a51
mov eax, dword [0x7ee188]
cmp edi, eax
jl 0x5b4138
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3c
jmp 0x5b4140
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x3f
jne 0x5b39e5
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3a
jg 0x5b2b6e
je 0x5b2bf0
add ecx, 0xffffffdf
cmp ecx, 0x18
ja case.0x5b2b03.34
jmp dword [ecx*4 + 0x5b2b0a]
cmp ecx, 0x43
jg 0x5b2b95
je 0x5b313a
sub ecx, 0x3c
je 0x5b30d7
dec ecx
je 0x5b30a2
dec ecx
je 0x5b312b
jmp case.0x5b2b03.34
sub ecx, 0x50
je 0x5b31f0
sub ecx, 2
je 0x5b35ba
sub ecx, 0x2a
je 0x5b2be6
jmp case.0x5b2b03.34
inc dword [ebp - 0x68]
jmp 0x5b2bb9
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
test dl, dl
je 0x5b2bcb
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x29
jne 0x5b2bb6
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
test cl, cl
jne 0x5b4138
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x12
jmp 0x5b4140
mov dword [ebp - 0xa8], 1
mov dword [ebp - 0x20], 0x5e
inc dword [ebp - 0x68]
jmp 0x5b3a13
mov dword [ebp - 0x20], 0x60
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x3f
jne 0x5b2c3d
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 2]
cmp dl, 0x3d
je 0x5b3a13
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 2]
cmp al, 0x21
je 0x5b3a13
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 2]
cmp cl, 0x3c
je 0x5b3a13
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 0x5b2c7e
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 2]
cmp al, 0x26
jne 0x5b2c7e
mov dword [ebp - 0xcc], 0xffffffff
add dword [ebp - 0x68], 2
mov byte [esi + 3], 0x65
jmp 0x5b2cdf
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x3c
jne 0x5b2c98
mov dword [ebp - 0xcc], 0x3e
inc dword [ebp - 0x68]
jmp 0x5b2cdf
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x27
jne 0x5b2cb2
mov dword [ebp - 0xcc], 0x27
inc dword [ebp - 0x68]
jmp 0x5b2cdf
xor ecx, ecx
mov dword [ebp - 0xcc], ecx
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x2d
je 0x5b2ccf
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x2b
jne 0x5b2cdf
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 0x5b2d01
inc dword [ebp - 0x68]
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x1c
jmp 0x5b4140
xor edx, edx
mov dword [ebp - 0xb8], edx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], ecx
jmp 0x5b2d56
mov eax, dword [ebp - 0xb8]
test eax, eax
jl 0x5b2d53
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x7eebe5], 4
je 0x5b2d4a
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 0x5b2d4d
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 0x5b2d17
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 0x5b2d95
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 0x5b2da2
mov edx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x29
je 0x5b2db3
dec dword [ebp - 0x68]
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x1a
jmp 0x5b4140
mov edx, dword [ebp + 8]
test edx, edx
jne 0x5b3a13
mov ecx, dword [ebp - 0xbc]
test ecx, ecx
jle 0x5b2e50
mov eax, dword [ebp - 0xb8]
test eax, eax
jg 0x5b2de4
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3a
jmp 0x5b4140
mov ecx, dword [ebp - 0xbc]
cmp ecx, 0x2d
jne 0x5b2dfd
mov eax, dword [ebx + 0x30]
mov edx, dword [ebp - 0xb8]
sub eax, edx
inc eax
jmp 0x5b2e08
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 0x5b2e25
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebx + 0x34]
cmp eax, edx
jle 0x5b2e33
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0xf
jmp 0x5b4140
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 0x5b3a13
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], ecx
xor eax, eax
mov dword [ebp - 0x198], eax
jmp 0x5b2e96
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 0x5b2ea3
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 0x5b2e63
mov edx, dword [ebp - 0x198]
mov ecx, dword [ebx + 0x28]
cmp edx, ecx
jge 0x5b2eed
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 0x5b3a13
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.005aed40
mov dword [ebp - 0x198], eax
test eax, eax
jle 0x5b2f32
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 0x5b3a13
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x5b2f4a
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x5b4140
mov ecx, dword [ebp - 0x1ac]
mov al, byte [ecx]
cmp al, 0x52
jne 0x5b3016
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 0x5b2fe1
mov edx, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x198]
xor eax, eax
mov al, byte [edx + ecx]
test byte [eax + 0x7eebe5], 4
jne 0x5b2fa4
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x5b4140
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 0x5b2f7c
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
jne 0x5b2ff5
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 0x5b3a13
mov ecx, dword [ebp - 0x1a4]
cmp ecx, 6
jne 0x5b304e
push 6
push str.DEFINE
mov eax, dword [ebp - 0x1ac]
push eax
call sub.MSVCRT.DLL_strncmp
add esp, 0xc
test eax, eax
jne 0x5b304e
mov byte [esi + 3], 0x66
mov dword [ebp - 0xc0], 1
jmp 0x5b3a13
mov edx, dword [ebp - 0xb8]
test edx, edx
jle 0x5b3082
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebx + 0x34]
cmp ecx, eax
jg 0x5b3082
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 0x5b3a13
mov eax, dword [ebp - 0xb8]
test eax, eax
jne 0x5b3093
mov edx, 0x23
jmp 0x5b3098
mov edx, 0xf
mov eax, dword [ebp + 0x1c]
mov dword [eax], edx
jmp 0x5b4140
mov dword [ebp - 0x20], 0x58
inc dword [ebp - 0x68]
jmp 0x5b3a13
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x29
jne 0x5b30cb
mov byte [esi], 0x6d
inc esi
xor edx, edx
mov dword [ebp - 0x70], edx
jmp 0x5b4138
mov dword [ebp - 0x20], 0x59
jmp 0x5b3a13
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
sub al, 0x21
je 0x5b30f5
sub al, 0x1c
jne 0x5b3105
mov dword [ebp - 0x20], 0x5a
add dword [ebp - 0x68], 2
jmp 0x5b3a13
mov dword [ebp - 0x20], 0x5b
add dword [ebp - 0x68], 2
jmp 0x5b3a13
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.0x5b2b03.39
inc dword [ebp - 0x68]
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x18
jmp 0x5b4140
mov dword [ebp - 0x20], 0x5d
inc dword [ebp - 0x68]
jmp 0x5b3a13
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 0x5b316f
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 + 0x7eebe5], 4
jne 0x5b3152
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x29
je 0x5b3199
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x27
jmp 0x5b4140
mov ecx, dword [ebp - 0x1b4]
cmp ecx, 0xff
jle 0x5b31b5
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x26
jmp 0x5b4140
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 0x5b4138
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x3d
je 0x5b3207
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x3e
jne 0x5b3229
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 0x5b3445
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x3c
je case.0x5b2b03.39
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x29
jmp 0x5b4140
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x3c
jne 0x5b3250
mov edx, 0x3e
jmp 0x5b3255
mov edx, 0x27
mov dword [ebp - 0xcc], edx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], eax
jmp 0x5b326c
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 0x5b3269
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 0x5b3308
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebp - 0xcc]
cmp eax, edx
je 0x5b32b3
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x2a
jmp 0x5b4140
mov eax, dword [ebx + 0x28]
cmp eax, 0x2710
jl 0x5b32cb
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x31
jmp 0x5b4140
mov ecx, dword [ebp - 0x1a4]
add ecx, 3
mov eax, dword [ebx + 0x2c]
cmp ecx, eax
jle 0x5b3426
mov edx, dword [ebp - 0x1a4]
add edx, 3
mov dword [ebx + 0x2c], edx
mov ecx, dword [ebp - 0x1a4]
cmp ecx, 0x20
jle 0x5b3426
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x30
jmp 0x5b4140
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], edx
xor ecx, ecx
mov dword [ebp - 0x198], ecx
jmp 0x5b33c5
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 0x5b3380
mov edx, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1a4]
mov al, byte [edx + ecx + 2]
test al, al
jne 0x5b3376
test byte [ebp - 0x46], 8
jne 0x5b3380
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x2b
jmp 0x5b4140
mov dword [ebp - 0x1b8], 0xffffffff
mov ecx, dword [ebp - 0x1b8]
test ecx, ecx
jge 0x5b33b6
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 0x5b33d6
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 0x5b331e
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 0x5b39f4
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 0x5b3456
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 0x5b3453
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 0x5b34db
mov eax, dword [ebp - 0x1a4]
test eax, eax
jne 0x5b3496
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3e
jmp 0x5b4140
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebp - 0xcc]
cmp eax, edx
je 0x5b34b5
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x2a
jmp 0x5b4140
mov eax, dword [ebp - 0x1a4]
cmp eax, 0x20
jle 0x5b34ce
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x30
jmp 0x5b4140
xor ecx, ecx
mov dword [ebp - 0xb8], ecx
jmp 0x5b35a7
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], eax
xor edx, edx
mov dword [ebp - 0x198], edx
jmp 0x5b3535
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 0x5b3526
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1a4]
mov dl, byte [ecx + eax + 2]
test dl, dl
je 0x5b3542
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 0x5b34ee
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebx + 0x28]
cmp ecx, eax
jge 0x5b3571
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 0x5b35a7
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.005aed40
mov dword [ebp - 0xb8], eax
test eax, eax
jg 0x5b35a7
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x5b4140
mov ecx, dword [ebp - 0xa4]
test ecx, ecx
jne 0x5b36ef
jmp 0x5b3ebe
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 0x5b35fa
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [eax]
test byte [ecx + 0x7eebe5], 4
jne 0x5b361d
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3f
jmp 0x5b4140
mov edx, dword [ebp - 0xbc]
cmp edx, 0x2d
jne 0x5b361d
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
test byte [eax + 0x7eebe5], 4
je case.0x5b2b03.34
inc dword [ebp - 0x68]
xor edx, edx
mov dword [ebp - 0xb8], edx
jmp 0x5b3647
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 + 0x7eebe5], 4
jne 0x5b3627
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
je 0x5b3676
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x1d
jmp 0x5b4140
mov ecx, dword [ebp - 0xbc]
cmp ecx, 0x2d
jne 0x5b36c3
mov eax, dword [ebp - 0xb8]
test eax, eax
jne 0x5b3699
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3a
jmp 0x5b4140
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 0x5b36ef
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0xf
jmp 0x5b4140
mov eax, dword [ebp - 0xbc]
cmp eax, 0x2b
jne 0x5b36ef
mov edx, dword [ebp - 0xb8]
test edx, edx
jne 0x5b36e6
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x3a
jmp 0x5b4140
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 0x5b37da
mov byte [esi], 0
mov eax, dword [ebp - 0xb8]
test eax, eax
je 0x5b372a
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebx + 0x14]
call fcn.005af0d4
mov dword [ebp - 0x1bc], eax
mov edx, dword [ebp - 0x1bc]
test edx, edx
jne 0x5b3797
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.005aed40
test eax, eax
jge 0x5b3760
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xf
jmp 0x5b4140
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 0x5b37da
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 0x5b37da
mov edx, dword [ebp - 0x80]
push edx
mov ecx, dword [ebp + 0x10]
mov edx, esi
mov eax, dword [ebp - 0x1bc]
call fcn.005af4ec
test eax, eax
je 0x5b37da
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x28
jmp 0x5b4140
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 0x5b4138
mov dword [ebp - 0x2c], 0xffffffff
jmp 0x5b4138
xor ecx, ecx
lea eax, [ebp - 0x19c]
mov dword [ebp - 0x1a0], ecx
mov dword [ebp - 0x19c], ecx
mov dword [ebp - 0x1a8], eax
jmp 0x5b390a
mov edx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x69
jg 0x5b3883
je 0x5b38b4
sub eax, 0x2d
je 0x5b3894
sub eax, 0x1d
je 0x5b38a2
sub eax, 0xb
je 0x5b38e0
sub eax, 3
je 0x5b38ee
jmp 0x5b38f9
sub eax, 0x6d
je 0x5b38bf
sub eax, 6
je 0x5b38ca
sub eax, 5
je 0x5b38d5
jmp 0x5b38f9
lea edx, [ebp - 0x1a0]
mov dword [ebp - 0x1a8], edx
jmp 0x5b390a
mov ecx, dword [ebp - 0x1a8]
or dword [ecx], 0x80000
or dword [ebx + 0x44], 0x10
jmp 0x5b390a
mov eax, dword [ebp - 0x1a8]
or dword [eax], 1
jmp 0x5b390a
mov edx, dword [ebp - 0x1a8]
or dword [edx], 2
jmp 0x5b390a
mov ecx, dword [ebp - 0x1a8]
or dword [ecx], 4
jmp 0x5b390a
mov eax, dword [ebp - 0x1a8]
or dword [eax], 8
jmp 0x5b390a
mov edx, dword [ebp - 0x1a8]
or dword [edx], 0x200
jmp 0x5b390a
mov ecx, dword [ebp - 0x1a8]
or dword [ecx], 0x40
jmp 0x5b390a
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xc
dec dword [ebp - 0x68]
jmp 0x5b4140
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x29
je 0x5b3922
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x3a
jne 0x5b385c
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 0x5b39d9
mov edx, dword [ebx + 0x14]
add edx, 3
cmp esi, edx
jne 0x5b3970
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x5b3965
mov eax, dword [ebp + 8]
mov edx, dword [eax]
cmp edx, 6
jne 0x5b3970
mov ecx, dword [ebp - 0xb4]
mov dword [ebx + 0x40], ecx
jmp 0x5b39c1
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0xb4]
and edx, 7
and eax, 7
cmp eax, edx
je 0x5b3993
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 0x5b39bc
mov ecx, pe_nt_image_headers32
jmp 0x5b39be
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 0x5b4138
mov dword [ebp - 0x20], 0x5e
inc dword [ebp - 0x68]
jmp 0x5b3a13
test byte [ebp - 0x47], 0x10
je 0x5b39f4
mov dword [ebp - 0x20], 0x5e
jmp 0x5b3a13
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 0x5b3a1f
mov eax, esi
jmp 0x5b3a21
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 0x5b3a53
mov edx, dword [ebp - 0x20]
cmp edx, 0x5b
je 0x5b3a53
xor ecx, ecx
jmp 0x5b3a58
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 0x5b3a85
xor eax, eax
jmp 0x5b3a88
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.005b415c
test eax, eax
je 0x5b4140
mov edx, dword [ebp - 0x20]
cmp edx, 0x60
jne 0x5b3b56
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x5b3b56
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 0x5b3aca
mov dl, byte [esi + 3]
cmp dl, 0x66
jne 0x5b3b25
mov ecx, dword [ebp - 0x1c4]
dec ecx
jle 0x5b3b1c
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x36
jmp 0x5b4140
mov dword [ebp - 0x20], 0x66
jmp 0x5b3b56
mov edx, dword [ebp - 0x1c4]
cmp edx, 2
jle 0x5b3b3e
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x1b
jmp 0x5b4140
mov eax, dword [ebp - 0x1c4]
dec eax
jne 0x5b3b56
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 0x5b3b6e
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xe
jmp 0x5b4140
mov edx, dword [ebp + 8]
test edx, edx
je 0x5b3bc5
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 0x5b3b99
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x14
jmp 0x5b4140
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 0x5b4138
mov esi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x20]
cmp eax, 0x66
je 0x5b4138
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 0x5b3c62
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x5b3c21
mov eax, dword [ebp - 0xc8]
test eax, eax
jl 0x5b3c11
mov edx, dword [ebp - 0xc8]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x64], 1
jmp 0x5b3c18
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x38], 0xffffffff
jmp 0x5b3c46
mov ecx, dword [ebp - 0xc8]
test ecx, ecx
jl 0x5b3c46
mov eax, dword [ebp - 0xc4]
test eax, eax
jge 0x5b3c46
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 0x5b4138
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0x30], edx
jmp 0x5b4138
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x58
jne 0x5b4138
mov eax, dword [ebp - 0xc4]
test eax, eax
jl 0x5b4138
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0x30], edx
jmp 0x5b4138
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.005ae384
mov edi, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x5b4140
test edi, edi
jge 0x5b3fcc
mov ecx, edi
neg ecx
cmp ecx, 0x1a
jne 0x5b3cee
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x5c
jne 0x5b3ce2
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 2]
cmp al, 0x45
jne 0x5b3ce2
add dword [ebp - 0x68], 2
jmp 0x5b4138
mov dword [ebp - 0x60], 1
jmp 0x5b4138
mov edx, edi
neg edx
cmp edx, 0x19
je 0x5b4138
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x5b3d1c
mov eax, edi
neg eax
cmp eax, 5
jle 0x5b3d1c
mov edx, edi
neg edx
cmp edx, 0x17
jge 0x5b3d1c
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 0x5b3e44
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 0x5b3d4f
mov ecx, 0x3e
jmp 0x5b3d54
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 0x5b3e0a
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x2d
je 0x5b3e0a
mov dword [ebp - 0x1c8], 1
mov eax, dword [ebp - 0x68]
inc eax
jmp 0x5b3dba
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 4
jne 0x5b3dac
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 0x5b3dce
inc eax
mov cl, byte [eax]
test cl, cl
je 0x5b3dce
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebp - 0xcc]
cmp edx, ecx
jne 0x5b3d97
movzx eax, byte [eax]
mov edx, dword [ebp - 0xcc]
cmp eax, edx
je 0x5b3de9
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x39
jmp 0x5b4138
mov ecx, dword [ebp - 0x1c8]
test ecx, ecx
je 0x5b3dfb
inc dword [ebp - 0x68]
jmp 0x5b35c7
mov dword [ebp - 0xa4], 1
jmp 0x5b3445
mov eax, dword [ebp - 0x68]
add eax, 2
jmp 0x5b3e13
inc eax
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x7eebe5], 4
jne 0x5b3e12
xor ecx, ecx
mov cl, byte [eax]
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
je 0x5b3e3c
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x39
jmp 0x5b4138
inc dword [ebp - 0x68]
jmp 0x5b35c7
mov ecx, edi
neg ecx
cmp ecx, 0x1c
jne 0x5b3eaa
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x3c
je 0x5b3e6d
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x27
je 0x5b3e6d
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x7b
jne 0x5b3eaa
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 0x5b3e89
mov eax, 0x3e
jmp 0x5b3e9f
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x27
jne 0x5b3e9a
mov eax, 0x27
jmp 0x5b3e9f
mov eax, 0x7d
mov dword [ebp - 0xcc], eax
jmp 0x5b3445
mov edx, edi
neg edx
cmp edx, 0x1d
jl 0x5b3f2f
neg edi
add edi, 0xffffffe3
mov dword [ebp - 0xb8], edi
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x5b3ecd
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 0x5b3f08
mov ecx, dword [ebp - 0xb8]
mov eax, 1
shl eax, cl
jmp 0x5b3f0d
mov eax, 1
or dword [ebx + 0x3c], eax
mov edx, dword [ebp - 0xb8]
mov ecx, dword [ebx + 0x38]
cmp edx, ecx
jle 0x5b4138
mov eax, dword [ebp - 0xb8]
mov dword [ebx + 0x38], eax
jmp 0x5b4138
mov edx, edi
neg edx
cmp edx, 0xf
je 0x5b3f41
mov ecx, edi
neg ecx
cmp ecx, 0x10
jne 0x5b3fa5
mov eax, dword [ebp + 0x1c]
lea ecx, [ebp - 0x1d0]
push eax
lea eax, [ebp - 0x68]
lea edx, [ebp - 0x1cc]
call fcn.005ae760
mov dword [ebp - 0x1d4], eax
mov edx, dword [ebp - 0x1d4]
test edx, edx
jl 0x5b4140
neg edi
cmp edi, 0x10
mov dword [ebp - 0x70], esi
sete cl
and ecx, 1
mov eax, dword [ebp - 0x1cc]
cmp ecx, eax
je 0x5b3f89
mov dl, 0x10
jmp 0x5b3f8b
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 0x5b4138
mov eax, edi
neg eax
cmp eax, 5
jle 0x5b3fbb
mov edx, edi
neg edx
cmp edx, 0x17
jge 0x5b3fbb
mov ecx, esi
jmp 0x5b3fbd
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov eax, edi
neg al
mov byte [esi], al
inc esi
jmp 0x5b4138
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x5b3fed
cmp edi, 0x7f
jle 0x5b3fed
lea edx, [ebp - 0xd8]
mov eax, edi
call fcn.005be8c0
mov dword [ebp - 0xd0], eax
jmp 0x5b4053
mov ecx, edi
mov byte [ebp - 0xd8], cl
mov dword [ebp - 0xd0], 1
jmp 0x5b4053
mov dword [ebp - 0xd0], 1
mov eax, edi
mov byte [ebp - 0xd8], al
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x5b4053
cmp edi, 0xc0
jl 0x5b4053
jmp 0x5b403f
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 0x5b4024
mov dword [ebp - 0x70], esi
test byte [ebp - 0x48], 1
je 0x5b4060
mov dl, 0x1d
jmp 0x5b4062
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 0x5b4099
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 0x5b407d
mov cl, byte [ebp - 0xd8]
cmp cl, 0xd
je 0x5b40ae
mov al, byte [ebp - 0xd8]
cmp al, 0xa
jne 0x5b40b2
or dword [ebx + 0x44], 0x20
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x5b410a
mov dword [ebp - 0x38], 0xffffffff
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0xd0]
dec eax
je 0x5b40d7
mov edx, dword [ebp - 0x3c]
test edx, edx
jne 0x5b40ff
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 0x5b4138
xor ecx, ecx
mov cl, byte [esi - 1]
mov eax, dword [ebx + 0x48]
or ecx, eax
mov dword [ebp - 0x30], ecx
jmp 0x5b4138
or edx, 0xffffffff
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
jmp 0x5b4138
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 0x5b4126
mov edx, dword [ebp - 0x3c]
test edx, edx
jne 0x5b4138
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 0x5b02d3
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