Function at 0x5e0645
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 0x5dfc59
mov edx, pe_nt_image_headers32
jmp 0x5dfc5b
xor edx, edx
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x5c]
cmp dword [ebp + 0x28], 0
movzx edi, byte [eax]
je 0x5dfcf7
mov eax, dword [ebx + 0x10]
add eax, 0x1000
cmp esi, eax
jbe 0x5dfc88
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x34
jmp 0x5e39ae
cmp esi, dword [ebp - 0x48]
jae 0x5dfc90
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 0x5dfcb1
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x5e39ae
mov edx, esi
mov ecx, dword [ebp + 0x28]
sub edx, dword [ebp - 0x48]
add dword [ecx], edx
cmp dword [ebp - 0x64], 0
je 0x5dfcef
mov ecx, dword [ebp - 0x64]
cmp ecx, dword [ebp - 0x4c]
jbe 0x5dfcf2
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 0x5dfcf2
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x48], esi
jmp 0x5dfd12
mov eax, dword [ebx + 0x10]
add eax, 0x1000
cmp eax, dword [ebx + 0x20]
jae 0x5dfd12
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x34
jmp 0x5e39ae
cmp dword [ebp - 0x54], 0
je 0x5dfd80
test edi, edi
je 0x5dfd80
cmp edi, 0x5c
jne 0x5dfd3c
mov ecx, dword [ebp - 0x5c]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x45
jne 0x5dfd3c
xor eax, eax
mov dword [ebp - 0x54], eax
inc dword [ebp - 0x5c]
jmp 0x5e39a6
cmp dword [ebp - 0x68], 0
je 0x5dfd5e
cmp dword [ebp + 0x28], 0
jne 0x5dfd59
push ebx
mov edx, dword [ebp - 0x5c]
push edx
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.005df0d0
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x68], eax
test byte [ebp - 0x3b], 0x40
je 0x5e3879
mov dword [ebp - 0x68], esi
push ebx
mov edx, dword [ebp - 0x5c]
push edx
push esi
call fcn.005df098
add esp, 0xc
mov esi, eax
jmp 0x5e3879
cmp edi, 0x2a
je 0x5dfda7
cmp edi, 0x2b
je 0x5dfda7
cmp edi, 0x3f
je 0x5dfda7
cmp edi, 0x7b
jne 0x5dfda3
mov ecx, dword [ebp - 0x5c]
inc ecx
push ecx
call fcn.005de248
pop ecx
test eax, eax
jne 0x5dfda7
xor eax, eax
jmp 0x5dfdac
mov eax, 1
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0
jne 0x5dfde8
cmp dword [ebp - 0x68], 0
je 0x5dfde8
mov edx, dword [ebp - 0x40]
add dword [ebp - 0x40], 0xffffffff
test edx, edx
jg 0x5dfde8
cmp dword [ebp + 0x28], 0
jne 0x5dfde3
push ebx
mov ecx, dword [ebp - 0x5c]
push ecx
mov eax, dword [ebp - 0x68]
push eax
call fcn.005df0d0
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x68], edx
test byte [ebp - 0x3c], 8
je 0x5dfe98
mov ecx, dword [ebx + 0xc]
test byte [ecx + edi], 1
jne 0x5e39a6
cmp edi, 0x23
jne 0x5dfe98
jmp 0x5dfe7f
cmp dword [ebx + 0x50], 0
je 0x5dfe43
mov eax, dword [ebx + 0x1c]
cmp eax, dword [ebp - 0x5c]
jbe 0x5dfe38
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.005edba8
add esp, 0x14
test eax, eax
jne 0x5dfe3c
xor eax, eax
jmp 0x5dfe72
mov eax, 1
jmp 0x5dfe72
mov edx, dword [ebx + 0x1c]
sub edx, dword [ebx + 0x54]
cmp edx, dword [ebp - 0x5c]
jb 0x5dfe69
mov ecx, dword [ebp - 0x5c]
mov al, byte [ecx]
cmp al, byte [ebx + 0x58]
jne 0x5dfe69
cmp dword [ebx + 0x54], 1
je 0x5dfe6d
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx + 1]
cmp cl, byte [ebx + 0x59]
je 0x5dfe6d
xor eax, eax
jmp 0x5dfe72
mov eax, 1
test eax, eax
je 0x5dfe7f
mov edx, dword [ebx + 0x54]
dec edx
add dword [ebp - 0x5c], edx
jmp 0x5dfe8a
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0
jne 0x5dfe0a
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0
jne 0x5e39a6
xor edi, edi
test byte [ebp - 0x3b], 0x40
je 0x5dfeba
cmp dword [ebp - 0x94], 0
jne 0x5dfeba
mov dword [ebp - 0x68], esi
push ebx
mov eax, dword [ebp - 0x5c]
push eax
push esi
call fcn.005df098
add esp, 0xc
mov esi, eax
mov edx, edi
cmp edx, 0x3f
jg 0x5dff08
je 0x5e14da
cmp edx, 0x29
jg 0x5dfeea
je 0x5dff40
sub edx, 1
jb 0x5dff40
sub edx, 0x23
je 0x5dffb7
sub edx, 4
je 0x5e220d
jmp 0x5e3879
sub edx, 0x2a
je 0x5e14bc
dec edx
je 0x5e14ca
sub edx, 3
je 0x5dffc5
jmp 0x5e3879
cmp edx, 0x5e
jg 0x5dff2f
je 0x5dff96
sub edx, 0x5b
je 0x5e0012
dec edx
je 0x5e34f6
dec edx
je 0x5dfff5
jmp 0x5e3879
sub edx, 0x7b
je 0x5e1485
dec edx
je 0x5dff40
jmp 0x5e3879
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 0x5dff8c
mov edx, dword [ebp + 0x28]
mov ebx, esi
mov ecx, 0x7fffffeb
sub ecx, dword [edx]
sub ebx, dword [ebp - 0x48]
cmp ecx, ebx
jge 0x5dff84
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x5e39ae
sub esi, dword [ebp - 0x48]
mov edx, dword [ebp + 0x28]
add dword [edx], esi
mov eax, 1
jmp 0x5e39b8
test byte [ebp - 0x3c], 2
je 0x5dffa9
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5dffa9
mov dword [ebp - 0x20], 0xffffffff
xor edx, edx
mov dword [ebp - 0x64], edx
mov byte [esi], 0x1a
inc esi
jmp 0x5e39a6
xor ecx, ecx
mov dword [ebp - 0x64], ecx
mov byte [esi], 0x1b
inc esi
jmp 0x5e39a6
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5dffd2
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 0x5dffeb
mov dl, 0xd
jmp 0x5dffed
mov dl, 0xc
mov byte [esi], dl
inc esi
jmp 0x5e39a6
test byte [ebx + 0x43], 2
je 0x5e3879
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x40
jmp 0x5e39ae
mov dword [ebp - 0x64], esi
mov ecx, dword [ebp - 0x5c]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x3a
je 0x5e003b
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2e
je 0x5e003b
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3d
jne 0x5e0072
lea edx, [ebp - 0x60]
push edx
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.005def48
add esp, 8
test eax, eax
je 0x5e0072
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3a
jne 0x5e0063
mov eax, 0xd
jmp 0x5e0068
mov eax, 0x1f
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
jmp 0x5e39ae
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 0x5e00b8
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x45
jne 0x5e009a
inc dword [ebp - 0x5c]
jmp 0x5e007a
push 3
push 0x679719
mov ecx, dword [ebp - 0x5c]
inc ecx
push ecx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5e00d2
add dword [ebp - 0x5c], 3
jmp 0x5e007a
cmp dword [ebp - 0x88], 0
jne 0x5e00d2
cmp edi, 0x5e
jne 0x5e00d2
mov dword [ebp - 0x88], 1
jmp 0x5e007a
cmp edi, 0x5d
jne 0x5e0107
test byte [ebx + 0x43], 2
je 0x5e0107
cmp dword [ebp - 0x88], 0
je 0x5e00ea
mov cl, 0xd
jmp 0x5e00ec
mov cl, 0x6d
mov byte [esi], cl
inc esi
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5e00fc
mov dword [ebp - 0x20], 0xffffffff
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
jmp 0x5e39a6
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 0x5e129b
cmp dword [ebp - 0x74], 0
je 0x5e0210
cmp edi, 0x7f
jle 0x5e0210
mov edx, dword [ebp - 0x5c]
movzx edi, byte [edx]
cmp edi, 0xc0
jl 0x5e0210
mov eax, edi
and eax, 0x3f
xor edx, edx
mov dl, byte [eax + 0x679bdc]
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 + 0x679820]
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 0x5e0207
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 0x5e01cf
mov eax, dword [ebp - 0xd8]
add dword [ebp - 0x5c], eax
cmp dword [ebp + 0x28], 0
je 0x5e0227
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 0x5e0258
cmp edi, 0x5c
jne 0x5e0cf5
mov ecx, dword [ebp - 0x5c]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x45
jne 0x5e0cf5
xor eax, eax
mov dword [ebp - 0x54], eax
inc dword [ebp - 0x5c]
jmp 0x5e127b
cmp edi, 0x5b
jne 0x5e0508
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3a
je 0x5e028c
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2e
je 0x5e028c
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3d
jne 0x5e0508
lea edx, [ebp - 0x60]
push edx
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.005def48
add esp, 8
test eax, eax
je 0x5e0508
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 0x5e02d0
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x1f
jmp 0x5e39ae
add dword [ebp - 0x5c], 2
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5e
jne 0x5e02f7
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.005defa8
add esp, 8
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xe4], 0
jge 0x5e0327
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1e
jmp 0x5e39ae
test byte [ebp - 0x3c], 1
je 0x5e033e
cmp dword [ebp - 0xe4], 2
jg 0x5e033e
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 + 0x678bc0]
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 + 0x678bc4]
mov dword [ebp - 0xe8], edx
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ecx*4 + 0x678bc8]
mov dword [ebp - 0xec], eax
cmp dword [ebp - 0xe8], 0
jl 0x5e043c
cmp dword [ebp - 0xec], 0
jl 0x5e03f5
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 0x5e03d1
jmp 0x5e043c
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 0x5e0418
cmp dword [ebp - 0xec], 0
jge 0x5e044b
neg dword [ebp - 0xec]
cmp dword [ebp - 0xec], 1
jne 0x5e045d
and byte [ebp - 0x20f], 0xc3
jmp 0x5e046d
cmp dword [ebp - 0xec], 2
jne 0x5e046d
and byte [ebp - 0x205], 0x7f
cmp dword [ebp - 0xe0], 0
je 0x5e04b6
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 0x5e0490
jmp 0x5e04f2
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 0x5e04d0
mov edx, dword [ebp - 0x60]
inc edx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0xa0], 0xa
jmp 0x5e127b
cmp edi, 0x5c
jne 0x5e0cf5
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.005ddd50
add esp, 0x14
mov edi, eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x5e39ae
mov edx, edi
neg edx
cmp edx, 5
jne 0x5e0549
mov edi, 8
jmp 0x5e05b0
mov eax, edi
neg eax
cmp eax, 0x16
jne 0x5e0559
mov edi, 0x58
jmp 0x5e05b0
mov eax, edi
neg eax
cmp eax, 0x11
jne 0x5e0569
mov edi, 0x52
jmp 0x5e05b0
mov eax, edi
neg eax
cmp eax, 0x1a
jne 0x5e05a3
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x5c
jne 0x5e0595
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x45
jne 0x5e0595
add dword [ebp - 0x5c], 2
jmp 0x5e127b
mov dword [ebp - 0x54], 1
jmp 0x5e127b
mov edx, edi
neg edx
cmp edx, 0x19
je 0x5e127b
test edi, edi
jge 0x5e0cf5
mov ecx, dword [ebx + 8]
mov dword [ebp - 0xf4], ecx
add dword [ebp - 0xa0], 2
cmp dword [ebp + 0x28], 0
jne 0x5e07d1
mov eax, edi
neg eax
add eax, 0xfffffffa
cmp eax, 5
ja case.default.0x5e05e2
jmp dword [eax*4 + 0x5e05e9]
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 0x5e061e
jmp 0x5e127b
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 0x5e066c
jmp 0x5e127b
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 0x5e06b5
jmp 0x5e127b
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 0x5e0706
jmp 0x5e127b
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 0x5e074b
and byte [ebp - 0x1ef], 0xf7
jmp 0x5e127b
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 0x5e079f
or byte [ebp - 0x1ef], 8
jmp 0x5e127b
cmp edi, 0xfffffff9
je 0x5e127b
cmp edi, 0xfffffffa
je 0x5e127b
cmp edi, 0xfffffff5
je 0x5e127b
cmp edi, 0xfffffff6
je 0x5e127b
cmp edi, 0xfffffff7
je 0x5e127b
cmp edi, 0xfffffff8
je 0x5e127b
mov ecx, edi
neg ecx
cmp ecx, 0x13
jne 0x5e0901
or byte [ebp - 0x1ef], 2
or byte [ebp - 0x1ec], 1
or byte [ebp - 0x1dc], 1
cmp dword [ebp - 0x74], 0
je 0x5e127b
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.005ede7c
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.005ede7c
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.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
push eax
push 0x200a
call fcn.005ede7c
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.005ede7c
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.005ede7c
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.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
jmp 0x5e127b
mov edx, edi
neg edx
cmp edx, 0x12
jne 0x5e0ad7
xor edi, edi
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0xf8], 0xff
mov edx, edi
dec edx
je 0x5e0937
sub edx, 3
je 0x5e0940
sub edx, 0x10
je 0x5e0949
jmp 0x5e0950
xor dword [ebp - 0xf8], 2
jmp 0x5e0950
xor dword [ebp - 0xf8], 1
jmp 0x5e0950
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 0x5e091c
cmp dword [ebp - 0x74], 0
je 0x5e127b
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.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x167f
call fcn.005ede7c
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.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x180d
call fcn.005ede7c
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.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x1fff
call fcn.005ede7c
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.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x202e
call fcn.005ede7c
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.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x205e
call fcn.005ede7c
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.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x2fff
call fcn.005ede7c
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.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x7fffffff
call fcn.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
jmp 0x5e127b
mov eax, edi
neg eax
cmp eax, 0x15
jne 0x5e0b4a
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 0x5e127b
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.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
push eax
push 0x2029
call fcn.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
jmp 0x5e127b
mov edx, edi
neg edx
cmp edx, 0x14
jne 0x5e0c32
xor edi, edi
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0xfc], 0xff
mov edx, edi
dec edx
je 0x5e0b7b
sub edx, 0xf
je 0x5e0b99
jmp 0x5e0ba0
xor dword [ebp - 0xfc], 4
xor dword [ebp - 0xfc], 8
xor dword [ebp - 0xfc], 0x10
xor dword [ebp - 0xfc], 0x20
jmp 0x5e0ba0
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 0x5e0b65
cmp dword [ebp - 0x74], 0
je 0x5e127b
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.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x2027
call fcn.005ede7c
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.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
push 0x7fffffff
call fcn.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
jmp 0x5e127b
mov eax, edi
neg eax
cmp eax, 0x10
je 0x5e0c48
mov edx, edi
neg edx
cmp edx, 0xf
jne 0x5e0cc9
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.005de128
add esp, 0x10
mov dword [ebp - 0x108], eax
cmp dword [ebp - 0x108], 0
jl 0x5e39ae
mov dword [ebp - 0x70], 1
neg edi
cmp edi, 0x10
sete al
and eax, 1
cmp eax, dword [ebp - 0x100]
je 0x5e0c97
mov dl, 3
jmp 0x5e0c99
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 0x5e127b
test byte [ebp - 0x3c], 0x40
je 0x5e0cdd
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 7
jmp 0x5e39ae
sub dword [ebp - 0xa0], 2
mov ecx, dword [ebp - 0x5c]
movzx edi, byte [ecx]
jmp 0x5e0cf5
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 0x5e0d0f
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x45
je 0x5e0cec
mov edx, dword [ebp - 0x5c]
cmp edi, 0xd
mov dword [ebp - 0xd0], edx
je 0x5e0d22
cmp edi, 0xa
jne 0x5e0d26
or dword [ebx + 0x44], 0x20
cmp dword [ebp - 0x54], 0
jne 0x5e1175
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x2d
jne 0x5e1175
add dword [ebp - 0x5c], 2
jmp 0x5e0d4b
add dword [ebp - 0x5c], 2
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5c
jne 0x5e0d92
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x45
je 0x5e0d47
jmp 0x5e0d92
add dword [ebp - 0x5c], 2
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5c
jne 0x5e0d89
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x45
jne 0x5e0d89
add dword [ebp - 0x5c], 2
jmp 0x5e0d92
mov dword [ebp - 0x54], 1
jmp 0x5e0dab
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5c
jne 0x5e0dab
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x51
je 0x5e0d66
mov edx, dword [ebp - 0x5c]
cmp byte [edx], 0
je 0x5e0dc5
cmp dword [ebp - 0x54], 0
jne 0x5e0dd3
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5d
jne 0x5e0dd3
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0x5c], edx
jmp 0x5e1175
cmp dword [ebp - 0x74], 0
je 0x5e0e9f
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x10c], 0xc0
jl 0x5e0eac
mov edx, dword [ebp - 0x10c]
and edx, 0x3f
xor ecx, ecx
mov cl, byte [edx + 0x679bdc]
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 + 0x679820]
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 0x5e0e94
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 0x5e0e5b
mov ecx, dword [ebp - 0x114]
add dword [ebp - 0x5c], ecx
jmp 0x5e0eac
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x54], 0
jne 0x5e0f45
cmp dword [ebp - 0x10c], 0x5c
jne 0x5e0f45
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.005ddd50
add esp, 0x14
mov dword [ebp - 0x10c], eax
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0
jne 0x5e39ae
cmp dword [ebp - 0x10c], 0
jge 0x5e0f45
cmp dword [ebp - 0x10c], 0xfffffffb
jne 0x5e0f0d
mov dword [ebp - 0x10c], 8
jmp 0x5e0f45
cmp dword [ebp - 0x10c], 0xffffffea
jne 0x5e0f22
mov dword [ebp - 0x10c], 0x58
jmp 0x5e0f45
cmp dword [ebp - 0x10c], 0xffffffef
jne 0x5e0f37
mov dword [ebp - 0x10c], 0x52
jmp 0x5e0f45
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x5c], eax
jmp 0x5e1175
cmp edi, dword [ebp - 0x10c]
jle 0x5e0f5b
mov edx, dword [ebp + 0x14]
mov dword [edx], 8
jmp 0x5e39ae
cmp edi, dword [ebp - 0x10c]
je 0x5e1175
cmp dword [ebp - 0x10c], 0xd
je 0x5e0f79
cmp dword [ebp - 0x10c], 0xa
jne 0x5e0f7d
or dword [ebx + 0x44], 0x20
cmp dword [ebp - 0x74], 0
je 0x5e10e2
cmp dword [ebp - 0x10c], 0xff
jg 0x5e0faa
test byte [ebp - 0x3c], 1
je 0x5e10e2
cmp dword [ebp - 0x10c], 0x7f
jle 0x5e10e2
mov dword [ebp - 0x70], 1
test byte [ebp - 0x3c], 1
je 0x5e10ae
mov dword [ebp - 0x124], edi
mov ecx, dword [ebp - 0x10c]
mov dword [ebp - 0x128], ecx
jmp 0x5e1082
mov eax, dword [ebp - 0x11c]
cmp eax, edi
jb 0x5e0fee
mov edx, dword [ebp - 0x120]
cmp edx, dword [ebp - 0x10c]
jbe 0x5e1082
cmp edi, dword [ebp - 0x11c]
jbe 0x5e1009
mov ecx, edi
dec ecx
cmp ecx, dword [ebp - 0x120]
ja 0x5e1009
mov edi, dword [ebp - 0x11c]
jmp 0x5e1082
mov eax, dword [ebp - 0x10c]
cmp eax, dword [ebp - 0x120]
jae 0x5e1034
mov edx, dword [ebp - 0x10c]
inc edx
cmp edx, dword [ebp - 0x11c]
jb 0x5e1034
mov ecx, dword [ebp - 0x120]
mov dword [ebp - 0x10c], ecx
jmp 0x5e1082
mov ecx, dword [ebp - 0x11c]
cmp ecx, dword [ebp - 0x120]
jne 0x5e104d
mov eax, dword [ebp - 0x78]
mov byte [eax], 1
inc dword [ebp - 0x78]
jmp 0x5e106c
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.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
mov edx, dword [ebp - 0x78]
push edx
mov ecx, dword [ebp - 0x120]
push ecx
call fcn.005ede7c
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.005df108
add esp, 0x10
test eax, eax
jne 0x5e0fd2
mov edx, dword [ebp - 0x78]
mov byte [edx], 2
inc dword [ebp - 0x78]
mov ecx, dword [ebp - 0x78]
push ecx
push edi
call fcn.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
push eax
mov edx, dword [ebp - 0x10c]
push edx
call fcn.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
jmp 0x5e127b
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 0x5e127b
cmp edi, dword [ebp - 0x10c]
jg 0x5e127b
mov ecx, edi
mov al, 1
and ecx, 7
mov edx, edi
shl al, cl
test edx, edx
jns 0x5e1125
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1f0], al
test byte [ebp - 0x3c], 1
je 0x5e1167
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 0x5e115d
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1f0], al
inc edi
cmp edi, dword [ebp - 0x10c]
jle 0x5e1113
jmp 0x5e127b
cmp dword [ebp - 0x74], 0
je 0x5e1227
cmp edi, 0xff
jg 0x5e119a
test byte [ebp - 0x3c], 1
je 0x5e1227
cmp edi, 0x7f
jle 0x5e1227
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.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
test byte [ebp - 0x3c], 1
je 0x5e127b
mov edx, edi
test edx, edx
jns 0x5e11cd
add edx, 0x7f
sar edx, 7
xor ecx, ecx
mov cl, byte [edx + 0x684b48]
shl ecx, 7
mov eax, edi
and eax, 0x8000007f
jns 0x5e11e9
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx edx, word [ecx*2 + 0x67ad48]
mov ecx, dword [edx*8 + 0x679f04]
add ecx, edi
mov dword [ebp - 0x130], ecx
cmp ecx, edi
je 0x5e127b
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.005ede7c
add esp, 8
add dword [ebp - 0x78], eax
jmp 0x5e127b
mov ecx, edi
mov al, 1
and ecx, 7
mov edx, edi
shl al, cl
test edx, edx
jns 0x5e1239
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1f0], al
test byte [ebp - 0x3c], 1
je 0x5e126f
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 0x5e1265
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 0x5e129b
cmp edi, 0x5d
jne 0x5e014d
cmp dword [ebp - 0x54], 0
jne 0x5e014d
test edi, edi
jne 0x5e12ad
mov eax, dword [ebp + 0x14]
mov dword [eax], 6
jmp 0x5e39ae
cmp dword [ebp - 0xa0], 1
jne 0x5e135e
cmp dword [ebp - 0x70], 0
jne 0x5e135e
cmp dword [ebp - 0x74], 0
je 0x5e12df
cmp dword [ebp - 0x88], 0
je 0x5e12df
cmp dword [ebp - 0xa4], 0x80
jge 0x5e135e
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x88], 0
je 0x5e1313
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5e12fb
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 0x5e39a6
cmp dword [ebp - 0x74], 0
je 0x5e1343
cmp dword [ebp - 0xa4], 0x7f
jle 0x5e1343
lea eax, [ebp - 0xcc]
push eax
mov edx, dword [ebp - 0xa4]
push edx
call fcn.005ede7c
add esp, 8
mov dword [ebp - 0xc4], eax
jmp 0x5e38cc
mov cl, byte [ebp - 0xa4]
mov byte [ebp - 0xcc], cl
mov dword [ebp - 0xc4], 1
jmp 0x5e38cc
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5e136b
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 0x5e1409
cmp dword [ebp - 0x8c], 0
jne 0x5e1409
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 0x5e13a7
mov al, 1
jmp 0x5e13a9
xor eax, eax
mov byte [esi], al
cmp dword [ebp - 0xa0], 0
jle 0x5e13e5
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 0x5e13e8
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 0x5e39a6
mov eax, dword [ebp - 0x88]
cmp eax, dword [ebp - 0x8c]
jne 0x5e141b
mov dl, 0x4e
jmp 0x5e141d
mov dl, 0x4f
mov byte [esi], dl
inc esi
cmp dword [ebp - 0x88], 0
je 0x5e146b
cmp dword [ebp + 0x28], 0
jne 0x5e147d
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 0x5e1445
jmp 0x5e147d
push 0x20
lea edx, [ebp - 0x1f0]
push edx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, 0x20
jmp 0x5e39a6
cmp dword [ebp - 0x94], 0
je 0x5e3879
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.005de2d4
add esp, 0x10
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x5e39ae
jmp 0x5e14e6
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], 0xffffffff
jmp 0x5e14e6
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x10], 0xffffffff
jmp 0x5e14e6
xor ecx, ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0x64], 0
jne 0x5e14fa
mov eax, dword [ebp + 0x14]
mov dword [eax], 9
jmp 0x5e39ae
cmp dword [ebp - 0xc], 0
jne 0x5e150c
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 0x5e1518
xor edx, edx
jmp 0x5e151d
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 0x5e1554
xor ecx, ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x90], 1
inc dword [ebp - 0x5c]
jmp 0x5e1572
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3f
jne 0x5e156c
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 4], ecx
inc dword [ebp - 0x5c]
jmp 0x5e1572
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 0x5e158e
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x1d
jne 0x5e165d
cmp dword [ebp - 0x74], 0
je 0x5e15ea
test byte [esi - 1], 0x80
je 0x5e15ea
lea ecx, [esi - 1]
mov dword [ebp - 0x134], ecx
jmp 0x5e15ab
dec dword [ebp - 0x134]
mov eax, dword [ebp - 0x134]
xor edx, edx
mov dl, byte [eax]
and edx, 0xc0
cmp edx, 0x80
je 0x5e15a5
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 0x5e15ff
movzx edi, byte [esi - 1]
cmp dword [ebp - 0xc], 1
jle 0x5e15ff
mov eax, dword [ebp - 0x30]
or eax, edi
or eax, dword [ebx + 0x48]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x90], 0
jne 0x5e171d
cmp dword [ebp - 0x10], 0
jge 0x5e171d
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.005df1a0
add esp, 0x1c
test eax, eax
je 0x5e171d
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x90], 1
jmp 0x5e171d
mov edx, dword [ebp - 0x64]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x1e
jne 0x5e16c3
mov dword [ebp - 8], 0xd
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x90], 0
movzx edi, byte [eax + 1]
jne 0x5e171d
cmp dword [ebp - 0x10], 0
jge 0x5e171d
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.005df1a0
add esp, 0x1c
test eax, eax
je 0x5e171d
xor ecx, ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x90], 1
jmp 0x5e171d
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x17
jge 0x5e1982
mov dword [ebp - 8], 0x1a
mov ecx, dword [ebp - 0x64]
cmp dword [ebp - 0x90], 0
movzx edi, byte [ecx]
jne 0x5e171d
cmp dword [ebp - 0x10], 0
jge 0x5e171d
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.005df1a0
add esp, 0x1c
test eax, eax
je 0x5e171d
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 0x5e1735
mov ecx, dword [ebp - 0x64]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0xf
jne 0x5e1753
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 0x5e1762
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 0x5e21fd
cmp dword [ebp - 0x10], 1
je 0x5e177f
or dword [ebx + 0x44], 1
mov eax, dword [ebp - 8]
add dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
jne 0x5e17d5
cmp dword [ebp - 0x10], 0xffffffff
jne 0x5e179f
mov dl, byte [ebp - 4]
add dl, 0x1f
mov byte [esi], dl
inc esi
jmp 0x5e192e
cmp dword [ebp - 0x10], 1
jne 0x5e17b3
mov cl, byte [ebp - 4]
add cl, 0x23
mov byte [esi], cl
inc esi
jmp 0x5e192e
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 0x5e192e
cmp dword [ebp - 0xc], 1
jne 0x5e1824
cmp dword [ebp - 0x10], 0xffffffff
jne 0x5e17ef
mov cl, byte [ebp - 4]
add cl, 0x21
mov byte [esi], cl
inc esi
jmp 0x5e192e
cmp dword [ebp - 0x10], 1
mov esi, dword [ebp - 0x138]
je 0x5e21fd
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 0x5e192e
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 0x5e18a2
cmp dword [ebp - 0x74], 0
je 0x5e1874
cmp edi, 0x80
jl 0x5e1874
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 0x5e1894
mov ecx, edi
mov byte [esi], cl
inc esi
cmp dword [ebp - 0x13c], 0
jl 0x5e1894
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 0x5e192e
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0xc]
je 0x5e192e
cmp dword [ebp - 0x74], 0
je 0x5e18db
cmp edi, 0x80
jl 0x5e18db
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 0x5e18e0
mov edx, edi
mov byte [esi], dl
inc esi
cmp dword [ebp - 0x13c], 0
jl 0x5e18fb
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 0x5e1912
mov cl, byte [ebp - 4]
add cl, 0x23
mov byte [esi], cl
inc esi
jmp 0x5e192e
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 0x5e1959
cmp edi, 0x80
jl 0x5e1959
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 0x5e195e
mov ecx, edi
mov byte [esi], cl
inc esi
cmp dword [ebp - 0x13c], 0
jl 0x5e201f
mov al, byte [ebp - 0x13c]
mov byte [esi], al
inc esi
mov dl, byte [ebp - 0x140]
mov byte [esi], dl
inc esi
jmp 0x5e201f
mov ecx, dword [ebp - 0x64]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x4e
je 0x5e19b6
mov edx, dword [ebp - 0x64]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x4f
je 0x5e19b6
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x50
je 0x5e19b6
mov ecx, dword [ebp - 0x64]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x51
jne 0x5e1a5c
cmp dword [ebp - 0x10], 0
jne 0x5e19c4
mov esi, dword [ebp - 0x64]
jmp 0x5e21fd
cmp dword [ebp - 0x10], 1
je 0x5e19ce
or dword [ebx + 0x44], 1
cmp dword [ebp - 0xc], 0
jne 0x5e19e7
cmp dword [ebp - 0x10], 0xffffffff
jne 0x5e19e7
mov al, byte [ebp - 4]
add al, 0x46
mov byte [esi], al
inc esi
jmp 0x5e201f
cmp dword [ebp - 0xc], 1
jne 0x5e1a01
cmp dword [ebp - 0x10], 0xffffffff
jne 0x5e1a01
mov dl, byte [ebp - 4]
add dl, 0x48
mov byte [esi], dl
inc esi
jmp 0x5e201f
cmp dword [ebp - 0xc], 0
jne 0x5e1a1b
cmp dword [ebp - 0x10], 1
jne 0x5e1a1b
mov cl, byte [ebp - 4]
add cl, 0x4a
mov byte [esi], cl
inc esi
jmp 0x5e201f
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 0x5e1a43
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 0x5e201f
mov ecx, dword [ebp - 0x64]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5e
je 0x5e1a90
mov edx, dword [ebp - 0x64]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5f
je 0x5e1a90
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5d
je 0x5e1a90
mov ecx, dword [ebp - 0x64]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x60
jne 0x5e2001
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 0x5e1acc
mov ecx, dword [ebp - 0x64]
xor eax, eax
mov al, byte [ecx + 3]
cmp eax, 0x66
jne 0x5e1acc
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x37
jmp 0x5e39ae
cmp dword [ebp - 0x10], 0xffffffff
jne 0x5e1b19
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 0x5e1adb
mov eax, esi
sub eax, dword [ebp - 0x150]
mov dword [ebp - 0x148], eax
cmp dword [ebp - 0xc], 0
jne 0x5e1c10
cmp dword [ebp - 0x10], 1
jg 0x5e1b7a
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.005deffc
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 0x5e1b67
mov eax, dword [ebp - 0x64]
mov byte [eax], 0x6f
jmp 0x5e21fd
mov eax, dword [ebp - 0x64]
mov dl, byte [ebp - 4]
add dl, 0x67
mov byte [eax], dl
inc dword [ebp - 0x64]
jmp 0x5e1c08
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.005deffc
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 0x5e1bcf
xor ecx, ecx
jmp 0x5e1bd8
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 0x5e1d31
cmp dword [ebp - 0xc], 1
jle 0x5e1d25
cmp dword [ebp + 0x28], 0
je 0x5e1c84
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 [0x5e39c0]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x5e1c66
mov edx, dword [ebp + 0x28]
mov ecx, 0x7fffffeb
sub ecx, dword [edx]
cmp ecx, dword [ebp - 0x158]
jge 0x5e1c74
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x5e39ae
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x158]
add dword [edx], ecx
jmp 0x5e1d25
cmp dword [ebp - 0x58], 0
je 0x5e1c96
cmp dword [ebp - 0x24], 0
jge 0x5e1c96
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 0x5e1d25
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 0x5e1d09
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 0x5e1ccd
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 0x5e1cab
cmp dword [ebp - 0x10], 0
jle 0x5e1d31
mov ecx, dword [ebp - 0xc]
sub dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 0
jl 0x5e1f3b
cmp dword [ebp + 0x28], 0
je 0x5e1db1
cmp dword [ebp - 0x10], 0
jle 0x5e1db1
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 [0x5e39c0]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x5e1d93
mov edx, dword [ebp + 0x28]
mov ecx, 0x7fffffeb
sub ecx, dword [edx]
cmp ecx, dword [ebp - 0x160]
jge 0x5e1da1
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x5e39ae
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x160]
add dword [edx], ecx
jmp 0x5e1ebd
mov ecx, dword [ebp - 0x10]
dec ecx
mov dword [ebp - 0x144], ecx
cmp dword [ebp - 0x144], 0
jl 0x5e1ebd
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 0x5e1e22
mov byte [esi], 0x5e
inc esi
cmp dword [ebp - 0x14c], 0
jne 0x5e1df4
xor ecx, ecx
jmp 0x5e1dfc
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 0x5e1e9f
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 0x5e1e5b
mov ecx, 4
jmp 0x5e1e60
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 0x5e1e83
mov cl, 4
jmp 0x5e1e85
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 0x5e1e3b
mov eax, dword [ebp - 0x164]
add esi, edi
mov dword [ebp - 0x6c], eax
dec dword [ebp - 0x144]
cmp dword [ebp - 0x144], 0
jge 0x5e1dc8
cmp dword [ebp - 0x14c], 0
je 0x5e201f
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 0x5e1ef8
xor ecx, ecx
jmp 0x5e1f04
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 0x5e1eca
jmp 0x5e201f
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 0x5e201f
mov ecx, dword [ebp - 0x174]
movzx ecx, byte [ecx]
cmp ecx, 0x5d
je 0x5e201f
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.005dec6c
add esp, 0xc
test eax, eax
je 0x5e1fd0
mov edx, dword [ebp - 0x174]
add byte [edx], 3
jmp 0x5e201f
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 0x5e1fa7
jmp 0x5e201f
mov ecx, dword [ebp - 0x64]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x6d
je 0x5e21fd
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xb
jmp 0x5e39ae
cmp dword [ebp - 0x90], 0
je 0x5e21fd
mov ecx, dword [ebp - 0x50]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x27
je 0x5e2050
mov edx, dword [ebp - 0x50]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x41
je 0x5e2050
mov eax, dword [ebp - 0x50]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x34
jne 0x5e2092
mov ecx, dword [ebp - 0x50]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x41
jne 0x5e207d
mov edx, dword [ebp - 0x50]
xor ecx, ecx
mov cl, byte [edx + 3]
cmp ecx, 0x10
je 0x5e2076
mov eax, dword [ebp - 0x50]
xor edx, edx
mov dl, byte [eax + 3]
cmp edx, 0xf
jne 0x5e207d
mov ecx, 2
jmp 0x5e207f
xor ecx, ecx
mov eax, dword [ebp - 0x50]
xor edx, edx
mov dl, byte [eax]
movzx edi, byte [edx + 0x679b6c]
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 0x5e21fd
mov edx, dword [ebp - 0x50]
xor ecx, ecx
mov cl, byte [edx]
add ecx, 0xffffffe1
cmp ecx, 0x20
ja case.0x5e20c3.31
mov cl, byte [ecx + 0x5e20ca]
jmp dword [ecx*4 + 0x5e20eb]
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x28
jmp 0x5e21fd
mov eax, dword [ebp - 0x50]
mov byte [eax], 0x29
jmp 0x5e21fd
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x2a
jmp 0x5e21fd
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x2b
jmp 0x5e21fd
mov eax, dword [ebp - 0x50]
mov byte [eax], 0x42
jmp 0x5e21fd
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x43
jmp 0x5e21fd
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x44
jmp 0x5e21fd
mov eax, dword [ebp - 0x50]
mov byte [eax], 0x45
jmp 0x5e21fd
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x35
jmp 0x5e21fd
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x36
jmp 0x5e21fd
mov eax, dword [ebp - 0x50]
mov byte [eax], 0x37
jmp 0x5e21fd
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x38
jmp 0x5e21fd
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 0x5e39a6
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 0x5e2354
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
mov edx, dword [ebx + 0xc]
test byte [edx + eax], 2
je 0x5e2354
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 0x5e2276
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3a
jne 0x5e22a3
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3b
jmp 0x5e39ae
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x5e22bd
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3c
jmp 0x5e39ae
mov edx, dword [ebp - 0x5c]
sub edx, dword [ebp - 0x188]
xor edi, edi
mov dword [ebp - 0x180], edx
jmp 0x5e232d
mov eax, dword [edi*8 + 0x678b84]
cmp eax, dword [ebp - 0x180]
jne 0x5e231e
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 0x5e231e
mov al, byte [edi*8 + 0x678b88]
xor ecx, ecx
mov byte [esi], al
mov dl, byte [esi]
inc esi
mov cl, dl
cmp ecx, 0x6e
jne 0x5e2335
mov dword [ebx + 0x4c], 1
jmp 0x5e2335
mov eax, dword [edi*8 + 0x678b84]
inc eax
add dword [ebp - 0x184], eax
inc edi
cmp edi, dword [0x678bbc]
jl 0x5e22d0
cmp edi, dword [0x678bbc]
jl 0x5e39a6
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x3c
jmp 0x5e39ae
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3f
jne 0x5e3263
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3a
jg 0x5e23f0
je 0x5e2478
add ecx, 0xffffffdf
cmp ecx, 0x18
ja case.0x5e2385.34
jmp dword [ecx*4 + 0x5e238c]
cmp ecx, 0x43
jg 0x5e2417
je 0x5e29cc
sub ecx, 0x3c
je 0x5e2960
dec ecx
je 0x5e2929
dec ecx
je 0x5e29bd
jmp case.0x5e2385.34
sub ecx, 0x50
je 0x5e2a7f
sub ecx, 2
je 0x5e2e42
sub ecx, 0x2a
je 0x5e246e
jmp case.0x5e2385.34
inc dword [ebp - 0x5c]
jmp 0x5e243b
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0
je 0x5e244f
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
jne 0x5e2438
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0
jne 0x5e39a6
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x12
jmp 0x5e39ae
mov dword [ebp - 0x9c], 1
mov dword [ebp - 0x14], 0x5e
inc dword [ebp - 0x5c]
jmp 0x5e3290
mov dword [ebp - 0x14], 0x60
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3f
jne 0x5e24ce
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 2]
cmp ecx, 0x3d
je 0x5e3290
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x21
je 0x5e3290
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x3c
je 0x5e3290
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 0x5e2514
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x26
jne 0x5e2514
mov dword [ebp - 0xc0], 0xffffffff
add dword [ebp - 0x5c], 2
mov byte [esi + 3], 0x65
jmp 0x5e257e
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3c
jne 0x5e2530
mov dword [ebp - 0xc0], 0x3e
inc dword [ebp - 0x5c]
jmp 0x5e257e
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x27
jne 0x5e254c
mov dword [ebp - 0xc0], 0x27
inc dword [ebp - 0x5c]
jmp 0x5e257e
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 0x5e256e
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2b
jne 0x5e257e
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 0x5e25a0
inc dword [ebp - 0x5c]
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x1c
jmp 0x5e39ae
xor ecx, ecx
mov dword [ebp - 0xac], ecx
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x1a0], eax
jmp 0x5e25f3
cmp dword [ebp - 0xac], 0
jl 0x5e25f0
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x679619], 4
je 0x5e25e7
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 0x5e25ea
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 0x5e25b6
mov edx, dword [ebp - 0x5c]
sub edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x198], edx
cmp dword [ebp - 0xc0], 0
jle 0x5e262c
mov ecx, dword [ebp - 0x5c]
inc dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, dword [ebp - 0xc0]
jne 0x5e263b
mov edx, dword [ebp - 0x5c]
inc dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x5e264c
dec dword [ebp - 0x5c]
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1a
jmp 0x5e39ae
cmp dword [ebp + 0x28], 0
jne 0x5e3290
cmp dword [ebp - 0xb0], 0
jle 0x5e26d8
cmp dword [ebp - 0xac], 0
jg 0x5e2676
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x3a
jmp 0x5e39ae
cmp dword [ebp - 0xb0], 0x2d
jne 0x5e268b
mov ecx, dword [ebx + 0x30]
sub ecx, dword [ebp - 0xac]
inc ecx
jmp 0x5e2694
mov ecx, dword [ebp - 0xac]
add ecx, dword [ebx + 0x30]
mov dword [ebp - 0xac], ecx
cmp dword [ebp - 0xac], 0
jle 0x5e26ae
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebx + 0x34]
jle 0x5e26bc
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x5e39ae
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 0x5e3290
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x1a4], edx
xor ecx, ecx
mov dword [ebp - 0x18c], ecx
jmp 0x5e271e
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 0x5e2729
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 0x5e26eb
mov ecx, dword [ebp - 0x18c]
cmp ecx, dword [ebx + 0x28]
jge 0x5e2771
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 0x5e3290
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.005de708
add esp, 0x10
mov dword [ebp - 0x18c], eax
test eax, eax
jle 0x5e27ba
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 0x5e3290
cmp dword [ebp - 0xc0], 0
je 0x5e27d6
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xf
jmp 0x5e39ae
mov edx, dword [ebp - 0x1a0]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x52
jne 0x5e289e
xor eax, eax
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x18c], 1
mov edx, dword [ebp - 0x18c]
cmp edx, dword [ebp - 0x198]
jge 0x5e286b
mov ecx, dword [ebp - 0x1a0]
mov eax, dword [ebp - 0x18c]
xor edx, edx
mov dl, byte [ecx + eax]
test byte [edx + 0x679619], 4
jne 0x5e2831
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xf
jmp 0x5e39ae
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 0x5e2809
cmp dword [ebp - 0xac], 0
jne 0x5e287e
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 0x5e3290
cmp dword [ebp - 0x198], 6
jne 0x5e28d4
push 6
push str.DEFINE
mov edx, dword [ebp - 0x1a0]
push edx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5e28d4
mov byte [esi + 3], 0x66
mov dword [ebp - 0xb4], 1
jmp 0x5e3290
cmp dword [ebp - 0xac], 0
jle 0x5e2905
mov ecx, dword [ebp - 0xac]
cmp ecx, dword [ebx + 0x34]
jg 0x5e2905
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 0x5e3290
cmp dword [ebp - 0xac], 0
jne 0x5e2915
mov eax, 0x23
jmp 0x5e291a
mov eax, 0xf
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
jmp 0x5e39ae
mov dword [ebp - 0x14], 0x58
inc dword [ebp - 0x5c]
jmp 0x5e3290
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
movzx ecx, byte [ecx]
cmp ecx, 0x29
jne 0x5e2954
mov byte [esi], 0x6d
inc esi
xor eax, eax
mov dword [ebp - 0x64], eax
jmp 0x5e39a6
mov dword [ebp - 0x14], 0x59
jmp 0x5e3290
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx + 1]
sub cl, 0x21
je 0x5e2982
sub cl, 0x1c
je 0x5e2972
jmp 0x5e2992
mov dword [ebp - 0x14], 0x5a
add dword [ebp - 0x5c], 2
jmp 0x5e3290
mov dword [ebp - 0x14], 0x5b
add dword [ebp - 0x5c], 2
jmp 0x5e3290
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.0x5e2385.39
inc dword [ebp - 0x5c]
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x18
jmp 0x5e39ae
mov dword [ebp - 0x14], 0x5d
inc dword [ebp - 0x5c]
jmp 0x5e3290
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 0x5e2a01
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 + 0x679619], 4
jne 0x5e29e4
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x5e2a2e
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x27
jmp 0x5e39ae
cmp dword [ebp - 0x1a8], 0xff
jle 0x5e2a48
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x26
jmp 0x5e39ae
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 0x5e39a6
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3d
je 0x5e2a9a
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3e
jne 0x5e2ac1
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 0x5e2cd7
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3c
je case.0x5e2385.39
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x29
jmp 0x5e39ae
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3c
jne 0x5e2aee
mov eax, 0x3e
jmp 0x5e2af3
mov eax, 0x27
mov dword [ebp - 0xc0], eax
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x1a0], edx
jmp 0x5e2b0a
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebx + 0xc]
movzx ecx, byte [ecx]
test byte [eax + ecx], 0x10
jne 0x5e2b07
mov edx, dword [ebp - 0x5c]
sub edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x198], edx
cmp dword [ebp + 0x28], 0
je 0x5e2ba0
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, dword [ebp - 0xc0]
je 0x5e2b4b
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x2a
jmp 0x5e39ae
cmp dword [ebx + 0x28], 0x2710
jl 0x5e2b62
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x31
jmp 0x5e39ae
mov edx, dword [ebp - 0x198]
add edx, 3
cmp edx, dword [ebx + 0x2c]
jle 0x5e2cb8
mov ecx, dword [ebp - 0x198]
add ecx, 3
mov dword [ebx + 0x2c], ecx
cmp dword [ebp - 0x198], 0x20
jle 0x5e2cb8
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x30
jmp 0x5e39ae
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x1a4], edx
xor ecx, ecx
mov dword [ebp - 0x18c], ecx
jmp 0x5e2c59
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 0x5e2c18
mov ecx, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x198]
cmp byte [ecx + eax + 2], 0
jne 0x5e2c0e
test byte [ebp - 0x3a], 8
jne 0x5e2c18
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x2b
jmp 0x5e39ae
mov dword [ebp - 0x1ac], 0xffffffff
cmp dword [ebp - 0x1ac], 0
jge 0x5e2c4a
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 0x5e2c68
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 0x5e2bb6
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 0x5e3272
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 0x5e2ce8
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 0x5e2ce5
mov ecx, dword [ebp - 0x5c]
sub ecx, dword [ebp - 0x1a0]
mov dword [ebp - 0x198], ecx
cmp dword [ebp + 0x28], 0
je 0x5e2d65
cmp dword [ebp - 0x198], 0
jne 0x5e2d24
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3e
jmp 0x5e39ae
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, dword [ebp - 0xc0]
je 0x5e2d41
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x2a
jmp 0x5e39ae
cmp dword [ebp - 0x198], 0x20
jle 0x5e2d58
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x30
jmp 0x5e39ae
xor ecx, ecx
mov dword [ebp - 0xac], ecx
jmp 0x5e2e30
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x1a4], eax
xor edx, edx
mov dword [ebp - 0x18c], edx
jmp 0x5e2dbe
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 0x5e2daf
mov ecx, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x198]
cmp byte [ecx + eax + 2], 0
je 0x5e2dc9
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 0x5e2d78
mov eax, dword [ebp - 0x18c]
cmp eax, dword [ebx + 0x28]
jge 0x5e2df6
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 0x5e2e30
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.005de708
add esp, 0x10
mov dword [ebp - 0xac], eax
test eax, eax
jg 0x5e2e30
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x5e39ae
cmp dword [ebp - 0x98], 0
jne 0x5e2f6c
jmp 0x5e3737
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 0x5e2e83
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x679619], 4
jne 0x5e2ea4
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3f
jmp 0x5e39ae
cmp dword [ebp - 0xb0], 0x2d
jne 0x5e2ea4
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
test byte [ecx + 0x679619], 4
je case.0x5e2385.34
inc dword [ebp - 0x5c]
xor ecx, ecx
mov dword [ebp - 0xac], ecx
jmp 0x5e2ecd
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 + 0x679619], 4
jne 0x5e2eae
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, dword [ebp - 0xc0]
je 0x5e2efa
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x1d
jmp 0x5e39ae
cmp dword [ebp - 0xb0], 0x2d
jne 0x5e2f43
cmp dword [ebp - 0xac], 0
jne 0x5e2f1a
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3a
jmp 0x5e39ae
mov edx, dword [ebx + 0x30]
sub edx, dword [ebp - 0xac]
inc edx
mov dword [ebp - 0xac], edx
cmp dword [ebp - 0xac], 0
jg 0x5e2f6c
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0xf
jmp 0x5e39ae
cmp dword [ebp - 0xb0], 0x2b
jne 0x5e2f6c
cmp dword [ebp - 0xac], 0
jne 0x5e2f63
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3a
jmp 0x5e39ae
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 0x5e305c
mov byte [esi], 0
cmp dword [ebp - 0xac], 0
je 0x5e2fab
mov ecx, dword [ebp - 0xac]
push ecx
mov eax, dword [ebp - 0x74]
push eax
mov edx, dword [ebx + 0x14]
push edx
call fcn.005deac0
add esp, 0xc
mov dword [ebp - 0x1b0], eax
cmp dword [ebp - 0x1b0], 0
jne 0x5e3015
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.005de708
add esp, 0x10
test eax, eax
jge 0x5e2fe3
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x5e39ae
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 0x5e305c
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 0x5e305c
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.005def08
add esp, 0x10
test eax, eax
je 0x5e305c
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x28
jmp 0x5e39ae
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 0x5e39a6
mov dword [ebp - 0x20], 0xffffffff
jmp 0x5e39a6
xor ecx, ecx
lea eax, [ebp - 0x190]
mov dword [ebp - 0x194], ecx
mov dword [ebp - 0x190], ecx
mov dword [ebp - 0x19c], eax
jmp 0x5e3186
mov edx, dword [ebp - 0x5c]
inc dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x69
jg 0x5e30ff
je 0x5e3130
sub ecx, 0x2d
je 0x5e3110
sub ecx, 0x1d
je 0x5e311e
sub ecx, 0xb
je 0x5e315c
sub ecx, 3
je 0x5e316a
jmp 0x5e3175
sub ecx, 0x6d
je 0x5e313b
sub ecx, 6
je 0x5e3146
sub ecx, 5
je 0x5e3151
jmp 0x5e3175
lea eax, [ebp - 0x194]
mov dword [ebp - 0x19c], eax
jmp 0x5e3186
mov edx, dword [ebp - 0x19c]
or dword [edx], 0x80000
or dword [ebx + 0x44], 0x10
jmp 0x5e3186
mov ecx, dword [ebp - 0x19c]
or dword [ecx], 1
jmp 0x5e3186
mov eax, dword [ebp - 0x19c]
or dword [eax], 2
jmp 0x5e3186
mov edx, dword [ebp - 0x19c]
or dword [edx], 4
jmp 0x5e3186
mov ecx, dword [ebp - 0x19c]
or dword [ecx], 8
jmp 0x5e3186
mov eax, dword [ebp - 0x19c]
or dword [eax], 0x200
jmp 0x5e3186
mov edx, dword [ebp - 0x19c]
or dword [edx], 0x40
jmp 0x5e3186
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xc
dec dword [ebp - 0x5c]
jmp 0x5e39ae
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x5e31a2
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3a
jne 0x5e30d8
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 0x5e3257
mov ecx, dword [ebx + 0x14]
add ecx, 3
cmp esi, ecx
jne 0x5e31ee
cmp dword [ebp + 0x28], 0
je 0x5e31e3
mov eax, dword [ebp + 0x28]
cmp dword [eax], 6
jne 0x5e31ee
mov edx, dword [ebp - 0xa8]
mov dword [ebx + 0x40], edx
jmp 0x5e323f
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0xa8]
and eax, 7
and ecx, 7
cmp ecx, eax
je 0x5e3211
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 0x5e323a
mov edx, pe_nt_image_headers32
jmp 0x5e323c
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 0x5e39a6
mov dword [ebp - 0x14], 0x5e
inc dword [ebp - 0x5c]
jmp 0x5e3290
test byte [ebp - 0x3b], 0x10
je 0x5e3272
mov dword [ebp - 0x14], 0x5e
jmp 0x5e3290
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 0x5e329a
mov edx, esi
jmp 0x5e329c
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 0x5e32bc
xor eax, eax
jmp 0x5e32bf
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 0x5e32f1
cmp dword [ebp - 0x14], 0x5b
je 0x5e32f1
xor ecx, ecx
jmp 0x5e32f6
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.005e39c8
add esp, 0x34
test eax, eax
je 0x5e39ae
cmp dword [ebp - 0x14], 0x60
jne 0x5e33d2
cmp dword [ebp + 0x28], 0
jne 0x5e33d2
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 0x5e3343
xor eax, eax
mov al, byte [esi + 3]
cmp eax, 0x66
jne 0x5e33a3
cmp dword [ebp - 0x1b8], 1
jle 0x5e339a
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x36
jmp 0x5e39ae
mov dword [ebp - 0x14], 0x66
jmp 0x5e33d2
cmp dword [ebp - 0x1b8], 2
jle 0x5e33ba
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1b
jmp 0x5e39ae
cmp dword [ebp - 0x1b8], 1
jne 0x5e33d2
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 0x5e33ec
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xe
jmp 0x5e39ae
cmp dword [ebp + 0x28], 0
je 0x5e3440
mov edx, dword [ebp + 0x28]
mov ecx, 0x7fffffeb
mov edi, dword [ebp - 0x44]
add edi, 0xfffffffa
sub ecx, dword [edx]
cmp ecx, edi
jge 0x5e3414
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x5e39ae
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 0x5e39a6
cmp dword [ebp - 0x14], 0x66
mov esi, dword [ebp - 0x50]
je 0x5e39a6
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 0x5e34d1
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5e3495
cmp dword [ebp - 0xbc], 0
jl 0x5e3485
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x58], 1
jmp 0x5e348c
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x2c], 0xffffffff
jmp 0x5e34b6
cmp dword [ebp - 0xbc], 0
jl 0x5e34b6
cmp dword [ebp - 0xb8], 0
jge 0x5e34b6
mov eax, dword [ebp - 0xbc]
or eax, dword [ebp - 0x38]
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 0
jl 0x5e39a6
mov edx, dword [ebp - 0xb8]
mov dword [ebp - 0x24], edx
jmp 0x5e39a6
cmp dword [ebp - 0x14], 0x58
jne 0x5e39a6
cmp dword [ebp - 0xb8], 0
jl 0x5e39a6
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0x24], ecx
jmp 0x5e39a6
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.005ddd50
add esp, 0x14
mov edi, eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x5e39ae
test edi, edi
jge 0x5e3842
mov edx, edi
neg edx
cmp edx, 0x1a
jne 0x5e3563
mov ecx, dword [ebp - 0x5c]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x5c
jne 0x5e3557
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x45
jne 0x5e3557
add dword [ebp - 0x5c], 2
jmp 0x5e39a6
mov dword [ebp - 0x54], 1
jmp 0x5e39a6
mov ecx, edi
neg ecx
cmp ecx, 0x19
je 0x5e39a6
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5e358f
mov eax, edi
neg eax
cmp eax, 5
jle 0x5e358f
mov edx, edi
neg edx
cmp edx, 0x17
jge 0x5e358f
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 0x5e36b2
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 0x5e35c4
mov ecx, 0x3e
jmp 0x5e35c9
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 0x5e367a
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x2d
je 0x5e367a
mov dword [ebp - 0x1bc], 1
mov eax, dword [ebp - 0x5c]
inc eax
jmp 0x5e3630
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 4
jne 0x5e3622
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 0x5e3641
inc eax
cmp byte [eax], 0
je 0x5e3641
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0xc0]
jne 0x5e360d
movzx eax, byte [eax]
cmp eax, dword [ebp - 0xc0]
je 0x5e365a
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x39
jmp 0x5e39a6
cmp dword [ebp - 0x1bc], 0
je 0x5e366b
inc dword [ebp - 0x5c]
jmp 0x5e2e4f
mov dword [ebp - 0x98], 1
jmp 0x5e2cd7
mov eax, dword [ebp - 0x5c]
add eax, 2
jmp 0x5e3683
inc eax
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x679619], 4
jne 0x5e3682
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, dword [ebp - 0xc0]
je 0x5e36aa
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x39
jmp 0x5e39a6
inc dword [ebp - 0x5c]
jmp 0x5e2e4f
mov eax, edi
neg eax
cmp eax, 0x1c
jne 0x5e3723
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3c
je 0x5e36e2
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x27
je 0x5e36e2
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x7b
jne 0x5e3723
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 0x5e3700
mov edx, 0x3e
jmp 0x5e3718
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x27
jne 0x5e3713
mov edx, 0x27
jmp 0x5e3718
mov edx, 0x7d
mov dword [ebp - 0xc0], edx
jmp 0x5e2cd7
mov eax, edi
neg eax
cmp eax, 0x1d
jl 0x5e37a2
neg edi
add edi, 0xffffffe3
mov dword [ebp - 0xac], edi
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5e3744
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 0x5e377d
mov ecx, dword [ebp - 0xac]
mov eax, 1
shl eax, cl
jmp 0x5e3782
mov eax, 1
or dword [ebx + 0x3c], eax
mov edx, dword [ebp - 0xac]
cmp edx, dword [ebx + 0x38]
jle 0x5e39a6
mov ecx, dword [ebp - 0xac]
mov dword [ebx + 0x38], ecx
jmp 0x5e39a6
mov ecx, edi
neg ecx
cmp ecx, 0xf
je 0x5e37b4
mov eax, edi
neg eax
cmp eax, 0x10
jne 0x5e381b
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.005de128
add esp, 0x10
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x1c8], 0
jl 0x5e39ae
neg edi
cmp edi, 0x10
mov dword [ebp - 0x64], esi
sete cl
and ecx, 1
cmp ecx, dword [ebp - 0x1c0]
je 0x5e37ff
mov al, 0x10
jmp 0x5e3801
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 0x5e39a6
mov ecx, edi
neg ecx
cmp ecx, 5
jle 0x5e3831
mov eax, edi
neg eax
cmp eax, 0x17
jge 0x5e3831
mov edx, esi
jmp 0x5e3833
xor edx, edx
mov dword [ebp - 0x64], edx
mov eax, edi
neg al
mov byte [esi], al
inc esi
jmp 0x5e39a6
cmp dword [ebp - 0x74], 0
je 0x5e3865
cmp edi, 0x7f
jle 0x5e3865
lea ecx, [ebp - 0xcc]
push ecx
push edi
call fcn.005ede7c
add esp, 8
mov dword [ebp - 0xc4], eax
jmp 0x5e38cc
mov ecx, edi
mov byte [ebp - 0xcc], cl
mov dword [ebp - 0xc4], 1
jmp 0x5e38cc
mov dword [ebp - 0xc4], 1
mov eax, edi
mov byte [ebp - 0xcc], al
cmp dword [ebp - 0x74], 0
je 0x5e38cc
cmp edi, 0xc0
jl 0x5e38cc
jmp 0x5e38b6
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 0x5e389b
mov dword [ebp - 0x64], esi
test byte [ebp - 0x3c], 1
je 0x5e38d9
mov al, 0x1d
jmp 0x5e38db
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 0x5e390e
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 0x5e38f4
xor ecx, ecx
mov cl, byte [ebp - 0xcc]
cmp ecx, 0xd
je 0x5e3928
xor eax, eax
mov al, byte [ebp - 0xcc]
cmp eax, 0xa
jne 0x5e392c
or dword [ebx + 0x44], 0x20
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x5e397d
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0xc4], 1
je 0x5e394e
cmp dword [ebp - 0x30], 0
jne 0x5e3972
xor ecx, ecx
mov cl, byte [ebp - 0xcc]
or ecx, dword [ebp - 0x30]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0xc4], 1
je 0x5e39a6
xor eax, eax
mov al, byte [esi - 1]
or eax, dword [ebx + 0x48]
mov dword [ebp - 0x24], eax
jmp 0x5e39a6
or edx, 0xffffffff
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edx
jmp 0x5e39a6
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 0x5e3998
cmp dword [ebp - 0x30], 0
jne 0x5e39a6
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 0x5dfc5e
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