Function at 0x5d31f0
Capabilities:
Encode data using base64
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
lea esp, [esp - 0x48]
push ebx
push esi
push edi
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
mov dword [ebp - 0x28], 0
xor eax, eax
push fcn.005d31e0
push ebp
push 0x414e20
push dword fs:[eax]
mov dword fs:[eax], esp
xor edi, edi
mov dword [ebp - 0x24], 0
mov eax, dword [ebp - 4]
mov dword [eax], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x2c], 0xffffffff
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov ax, word [eax - 2]
cmp ax, 0x24
jb 0x5d4f64
sub ax, 0x24
je 0x5d3310
sub ax, 4
je 0x5d3c10
sub ax, 1
je 0x5d47f8
sub ax, 1
jb 0x5d4f64
sub ax, 1
jbe 0x5d4810
sub ax, 3
je 0x5d3354
sub ax, 0x11
je 0x5d4810
sub ax, 0x1c
je 0x5d33a8
sub ax, 1
je 0x5d4828
sub ax, 2
je 0x5d32cc
sub ax, 0x1e
je 0x5d47f8
jmp 0x5d4f64
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 0x40
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2de], 0
jne 0x5d32f9
mov eax, dword [ebp - 8]
mov dx, 1
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d5394
mov eax, dword [ebp - 8]
mov dx, 0x22
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d5394
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 0x40
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2de], 0
jne 0x5d333d
mov eax, dword [ebp - 8]
mov dx, 2
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d5394
mov eax, dword [ebp - 8]
mov dx, 0x23
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d5394
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2dc], 0
je 0x5d3384
mov eax, dword [ebp - 8]
mov dx, 3
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d5394
mov eax, dword [ebp - 8]
mov dx, 0x24
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d5394
mov byte [ebp - 0x20], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
cmp word [eax], 0x5e
jne 0x5d33f4
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2da], 0
je 0x5d33d9
mov eax, dword [ebp - 8]
mov dx, 0x16
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d33e8
mov eax, dword [ebp - 8]
mov dx, 5
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
jmp 0x5d3420
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2da], 0
je 0x5d3411
mov eax, dword [ebp - 8]
mov dx, 0x15
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d3420
mov eax, dword [ebp - 8]
mov dx, 4
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov byte [ebp - 0x18], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
cmp word [eax], 0x5d
jne 0x5d3b3b
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
cmp word [eax + 2], 0x2d
sete cl
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov dx, word [eax]
mov eax, ebp
call fcn.005d56c0
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
nop
jmp 0x5d3b3b
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
cmp word [eax], 0x2d
jne 0x5d34b0
add eax, 2
cmp eax, dword [edx + 0x288]
jae 0x5d34b0
cmp word [eax], 0x5d
jne 0x5d34b0
xor cl, cl
mov dx, 0x2d
mov eax, ebp
call fcn.005d56c0
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
jmp 0x5d3b57
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
cmp word [eax], 0x2d
jne 0x5d3619
add eax, 2
cmp eax, dword [edx + 0x288]
jae 0x5d3619
cmp byte [ebp - 0x18], 0
je 0x5d3619
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov bx, word [eax]
cmp bx, 0x5c
jne 0x5d35a4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov ax, word [eax + 2]
cmp ax, 0x44
jb 0x5d355c
sub ax, 0x44
je 0x5d3558
sub ax, 4
je 0x5d3558
sub ax, 0xa
jb 0x5d355c
sub ax, 1
jbe 0x5d3558
sub ax, 3
jb 0x5d355c
sub ax, 1
jbe 0x5d3558
sub ax, 0xd
je 0x5d3558
sub ax, 4
je 0x5d3558
sub ax, 0xb
je 0x5d3558
sub ax, 3
jb 0x5d355c
sub ax, 1
ja 0x5d355c
nop
mov al, 1
jmp 0x5d3560
xor al, al
mov esi, esi
test al, al
je 0x5d357c
mov eax, dword [ebp - 8]
mov edx, 0x76
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d5397
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x288]
mov eax, dword [ebp - 8]
lea edx, [eax + 0x294]
mov eax, dword [ebp - 8]
call fcn.005d2f60
mov bx, ax
nop
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2db], 0
je 0x5d35df
cmp word [ebp - 0x14], 0x430
jne 0x5d35df
cmp bx, 0x42f
jne 0x5d35df
mov cx, 0x44f
mov dx, 0x430
mov eax, ebp
call fcn.005d54d0
mov cx, 0x42f
mov dx, 0x410
mov eax, ebp
call fcn.005d54d0
jmp 0x5d360a
cmp bx, word [ebp - 0x14]
jae 0x5d35fc
mov eax, dword [ebp - 8]
mov edx, 0x6d
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d5397
mov cx, bx
mov dx, word [ebp - 0x14]
mov eax, ebp
call fcn.005d54d0
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
jmp 0x5d3b3b
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
cmp word [eax], 0x5c
jne 0x5d3aee
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
cmp eax, dword [edx + 0x288]
jb 0x5d3660
mov eax, dword [ebp - 8]
mov edx, 0x6e
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d5397
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov ax, word [eax]
cmp ax, 0x44
jb 0x5d36bc
sub ax, 0x44
je 0x5d36b8
sub ax, 4
je 0x5d36b8
sub ax, 0xa
jb 0x5d36bc
sub ax, 1
jbe 0x5d36b8
sub ax, 3
jb 0x5d36bc
sub ax, 1
jbe 0x5d36b8
sub ax, 0xd
je 0x5d36b8
sub ax, 4
je 0x5d36b8
sub ax, 0xb
je 0x5d36b8
sub ax, 3
jb 0x5d36bc
sub ax, 1
ja 0x5d36bc
mov al, 1
jmp 0x5d36c0
xor al, al
mov esi, esi
test al, al
je 0x5d3a59
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x18], 0
mov edx, dword [ebp - 8]
lea eax, [edx + 0x2a0]
cmp eax, dword [edx + 0x2b0]
je 0x5d36f8
mov eax, dword [edx + 0x2b0]
mov word [eax], 2
add dword [edx + 0x2b0], 2
jmp 0x5d36ff
add dword [edx + 0x2b4], 1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov ax, word [eax]
cmp ax, 0x44
jb 0x5d3a44
sub ax, 0x44
je 0x5d38c4
sub ax, 4
je 0x5d39c4
sub ax, 0xa
je 0x5d3a04
sub ax, 1
je 0x5d3844
sub ax, 3
je 0x5d3944
sub ax, 1
je 0x5d37c4
sub ax, 0xd
je 0x5d3884
sub ax, 4
je 0x5d3984
sub ax, 0xb
je 0x5d3804
sub ax, 3
je 0x5d3904
sub ax, 1
jne 0x5d3a44
nop
mov eax, dword [ebp - 8]
movzx ax, byte [eax + 0x3ec]
mov cx, ax
mov edx, dword [ebp - 8]
lea eax, [edx + 0x2a0]
cmp eax, dword [edx + 0x2b0]
je 0x5d37b8
mov eax, dword [edx + 0x2b0]
mov word [eax], cx
add dword [edx + 0x2b0], 2
jmp 0x5d3b31
add dword [edx + 0x2b4], 1
jmp 0x5d3b31
mov eax, dword [ebp - 8]
movzx ax, byte [eax + 0x3ed]
mov dx, ax
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x2a0]
cmp ecx, dword [eax + 0x2b0]
je 0x5d37f8
mov ecx, dword [eax + 0x2b0]
mov word [ecx], dx
add dword [eax + 0x2b0], 2
jmp 0x5d3b31
add dword [eax + 0x2b4], 1
jmp 0x5d3b31
mov eax, dword [ebp - 8]
movzx ax, byte [eax + 0x3f0]
mov dx, ax
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x2a0]
cmp ecx, dword [eax + 0x2b0]
je 0x5d3838
mov ecx, dword [eax + 0x2b0]
mov word [ecx], dx
add dword [eax + 0x2b0], 2
jmp 0x5d3b31
add dword [eax + 0x2b4], 1
jmp 0x5d3b31
mov eax, dword [ebp - 8]
movzx ax, byte [eax + 0x3f1]
mov cx, ax
mov edx, dword [ebp - 8]
lea eax, [edx + 0x2a0]
cmp eax, dword [edx + 0x2b0]
je 0x5d3878
mov eax, dword [edx + 0x2b0]
mov word [eax], cx
add dword [edx + 0x2b0], 2
jmp 0x5d3b31
add dword [edx + 0x2b4], 1
jmp 0x5d3b31
mov eax, dword [ebp - 8]
movzx ax, byte [eax + 0x3ee]
mov cx, ax
mov edx, dword [ebp - 8]
lea eax, [edx + 0x2a0]
cmp eax, dword [edx + 0x2b0]
je 0x5d38b8
mov eax, dword [edx + 0x2b0]
mov word [eax], cx
add dword [edx + 0x2b0], 2
jmp 0x5d3b31
add dword [edx + 0x2b4], 1
jmp 0x5d3b31
mov eax, dword [ebp - 8]
movzx ax, byte [eax + 0x3ef]
mov cx, ax
mov edx, dword [ebp - 8]
lea eax, [edx + 0x2a0]
cmp eax, dword [edx + 0x2b0]
je 0x5d38f8
mov eax, dword [edx + 0x2b0]
mov word [eax], cx
add dword [edx + 0x2b0], 2
jmp 0x5d3b31
add dword [edx + 0x2b4], 1
jmp 0x5d3b31
mov eax, dword [ebp - 8]
movzx ax, byte [eax + 0x3f4]
mov dx, ax
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x2a0]
cmp ecx, dword [eax + 0x2b0]
je 0x5d3938
mov ecx, dword [eax + 0x2b0]
mov word [ecx], dx
add dword [eax + 0x2b0], 2
jmp 0x5d3b31
add dword [eax + 0x2b4], 1
jmp 0x5d3b31
mov eax, dword [ebp - 8]
movzx ax, byte [eax + 0x3f5]
mov dx, ax
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x2a0]
cmp ecx, dword [eax + 0x2b0]
je 0x5d3978
mov ecx, dword [eax + 0x2b0]
mov word [ecx], dx
add dword [eax + 0x2b0], 2
jmp 0x5d3b31
add dword [eax + 0x2b4], 1
jmp 0x5d3b31
mov eax, dword [ebp - 8]
movzx ax, byte [eax + 0x3f2]
mov dx, ax
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x2a0]
cmp ecx, dword [eax + 0x2b0]
je 0x5d39b8
mov ecx, dword [eax + 0x2b0]
mov word [ecx], dx
add dword [eax + 0x2b0], 2
jmp 0x5d3b31
add dword [eax + 0x2b4], 1
jmp 0x5d3b31
mov eax, dword [ebp - 8]
movzx ax, byte [eax + 0x3f3]
mov dx, ax
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x2a0]
cmp ecx, dword [eax + 0x2b0]
je 0x5d39f8
mov ecx, dword [eax + 0x2b0]
mov word [ecx], dx
add dword [eax + 0x2b0], 2
jmp 0x5d3b31
add dword [eax + 0x2b4], 1
jmp 0x5d3b31
mov eax, dword [ebp - 8]
movzx ax, byte [eax + 0x3f8]
mov dx, ax
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x2a0]
cmp ecx, dword [eax + 0x2b0]
je 0x5d3a38
mov ecx, dword [eax + 0x2b0]
mov word [ecx], dx
add dword [eax + 0x2b0], 2
jmp 0x5d3b31
add dword [eax + 0x2b4], 1
jmp 0x5d3b31
mov eax, dword [ebp - 8]
mov edx, 0x3f0
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d3b31
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
cmp word [eax], 0x70
jne 0x5d3a77
mov dl, 1
mov eax, ebp
call fcn.005d53b0
jmp 0x5d3b31
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
cmp word [eax], 0x50
jne 0x5d3a95
xor dl, dl
mov eax, ebp
call fcn.005d53b0
jmp 0x5d3b31
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x288]
mov eax, dword [ebp - 8]
lea edx, [eax + 0x294]
mov eax, dword [ebp - 8]
call fcn.005d2f60
mov si, ax
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
lea ecx, [eax + 4]
cmp ecx, dword [edx + 0x288]
jae 0x5d3adb
cmp word [eax + 2], 0x2d
jne 0x5d3adb
cmp word [ecx], 0x5d
je 0x5d3adb
mov byte [ebp - 0x44], 1
jmp 0x5d3adf
mov byte [ebp - 0x44], 0
mov cl, byte [ebp - 0x44]
mov dx, si
mov eax, ebp
call fcn.005d56c0
jmp 0x5d3b31
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
lea ecx, [eax + 4]
cmp ecx, dword [edx + 0x288]
jae 0x5d3b17
cmp word [eax + 2], 0x2d
jne 0x5d3b17
cmp word [ecx], 0x5d
je 0x5d3b17
mov byte [ebp - 0x44], 1
jmp 0x5d3b1b
mov byte [ebp - 0x44], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov dx, word [eax]
mov cl, byte [ebp - 0x44]
mov eax, ebp
call fcn.005d56c0
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
cmp eax, dword [edx + 0x288]
jae 0x5d3b57
cmp word [eax], 0x5d
jne 0x5d3470
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x18], 0
mov edx, dword [ebp - 8]
lea eax, [edx + 0x2a0]
cmp eax, dword [edx + 0x2b0]
je 0x5d3b87
mov eax, dword [edx + 0x2b0]
mov word [eax], 1
add dword [edx + 0x2b0], 2
jmp 0x5d3b8e
add dword [edx + 0x2b4], 1
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2da], 0
je 0x5d3bc8
cmp byte [ebp - 0x20], 0
jne 0x5d3bc8
mov eax, dword [ebp - 0xc]
cmp word [eax], 0x16
jne 0x5d3bb4
mov eax, dword [ebp - 0xc]
mov word [eax], 5
mov esi, esi
mov eax, dword [ebp - 0xc]
cmp word [eax], 0x15
jne 0x5d3bc8
mov eax, dword [ebp - 0xc]
mov word [eax], 4
mov esi, esi
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
cmp word [eax], 0x5d
je 0x5d3bf0
mov eax, dword [ebp - 8]
mov edx, 0x71
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d5397
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d5394
mov byte [ebp - 0x48], 0
lea eax, [ebp - 0x28]
xor edx, edx
call fcn.0040b6d0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
cmp word [eax], 0x3f
jne 0x5d422c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov bx, word [eax + 2]
mov ax, bx
cmp ax, 0x21
jb 0x5d421c
sub ax, 0x21
je 0x5d3fd0
sub ax, 2
je 0x5d4014
sub ax, 3
je 0x5d4180
sub ax, 1
je 0x5d4118
sub ax, 6
je 0x5d4034
sub ax, 3
je 0x5d4048
sub ax, 1
jb 0x5d421c
sub ax, 8
jbe 0x5d4088
sub ax, 1
je 0x5d3ce8
sub ax, 2
je 0x5d3e8c
sub ax, 1
je 0x5d3fd0
sub ax, 1
je 0x5d3cfc
sub ax, 0x12
je 0x5d3d10
sub ax, 2
je 0x5d4048
sub ax, 0xf
jb 0x5d421c
sub ax, 0x19
jbe 0x5d4034
jmp 0x5d421c
mov byte [ebp - 0x48], 1
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 4
jmp 0x5d422c
mov byte [ebp - 0x48], 2
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 4
jmp 0x5d422c
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
add eax, 8
cmp eax, dword [edx + 0x288]
jb 0x5d3d34
mov eax, dword [ebp - 8]
mov edx, 0x8c
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov ax, word [eax + 4]
cmp ax, 0x3c
jb 0x5d3e74
sub ax, 0x3c
je 0x5d3d68
sub ax, 1
je 0x5d3dac
sub ax, 1
je 0x5d3df0
jmp 0x5d3e74
mov byte [ebp - 0x48], 0
push 0x3e
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
lea edx, [eax + 6]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x288]
mov eax, dword [ebp - 8]
call fcn.005d59a0
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x5d3d99
mov eax, dword [eax - 4]
add eax, 4
mov edx, dword [ebp - 8]
shl eax, 1
add dword [edx + 0x294], eax
jmp 0x5d422c
mov byte [ebp - 0x48], 3
push 0x29
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
lea edx, [eax + 6]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x288]
mov eax, dword [ebp - 8]
call fcn.005d59a0
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x5d3ddd
mov eax, dword [eax - 4]
add eax, 4
mov edx, dword [ebp - 8]
shl eax, 1
add dword [edx + 0x294], eax
jmp 0x5d422c
mov byte [ebp - 0x48], 0xb
push 0x29
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
lea edx, [eax + 6]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x288]
mov eax, dword [ebp - 8]
call fcn.005d59a0
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x5d3e21
mov eax, dword [eax - 4]
add eax, 4
mov edx, dword [ebp - 8]
shl eax, 1
add dword [edx + 0x294], eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2c0], 0
je 0x5d422c
mov eax, dword [ebp - 8]
add eax, 0x114
mov edx, dword [ebp - 0x28]
call fcn.005d0500
mov dword [ebp - 0x2c], eax
cmp eax, 1
jge 0x5d422c
mov eax, dword [ebp - 8]
mov edx, 0x8e
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
nop
jmp 0x5d422c
mov eax, dword [ebp - 8]
mov edx, 0x8c
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d422c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov ax, word [eax + 4]
cmp ax, 0x21
jb 0x5d3fb8
sub ax, 0x21
je 0x5d3f18
sub ax, 0x1c
je 0x5d3ee0
sub ax, 4
jb 0x5d3fb8
sub ax, 0x19
jbe 0x5d3f50
sub ax, 7
jb 0x5d3fb8
sub ax, 0x19
jbe 0x5d3f50
jmp 0x5d3fb8
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
add eax, 8
cmp eax, dword [edx + 0x288]
jb 0x5d3f04
mov eax, dword [ebp - 8]
mov edx, 0x98
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
mov byte [ebp - 0x48], 8
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 6
jmp 0x5d422c
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
add eax, 8
cmp eax, dword [edx + 0x288]
jb 0x5d3f3c
mov eax, dword [ebp - 8]
mov edx, 0x98
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
mov byte [ebp - 0x48], 9
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 6
jmp 0x5d422c
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
add eax, 8
cmp eax, dword [edx + 0x288]
jb 0x5d3f74
mov eax, dword [ebp - 8]
mov edx, 0x8c
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
mov byte [ebp - 0x48], 0
push 0x3e
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
lea edx, [eax + 4]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x288]
mov eax, dword [ebp - 8]
call fcn.005d59a0
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x5d3fa5
mov eax, dword [eax - 4]
add eax, 3
mov edx, dword [ebp - 8]
shl eax, 1
add dword [edx + 0x294], eax
jmp 0x5d422c
mov eax, dword [ebp - 8]
mov edx, 0x78
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d422c
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
add eax, 6
cmp eax, dword [edx + 0x288]
jb 0x5d3ff4
mov eax, dword [ebp - 8]
mov edx, 0x96
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
cmp bx, 0x3d
jne 0x5d4001
mov byte [ebp - 0x48], 6
jmp 0x5d4005
mov byte [ebp - 0x48], 7
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 4
jmp 0x5d422c
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 0x40
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov byte [ebp - 0x48], 4
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 4
jmp 0x5d422c
mov byte [ebp - 0x48], 5
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
jmp 0x5d422c
mov byte [ebp - 0x48], 0xa
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
cmp word [eax], 0x29
je 0x5d4078
mov eax, dword [ebp - 8]
mov edx, 0x84
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
mov esi, esi
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
jmp 0x5d422c
mov byte [ebp - 0x48], 0xb
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
mov eax, dword [ebp - 8]
lea edx, [eax + 0x294]
lea ecx, [ebp - 0x2c]
mov eax, ebp
call fcn.005d5910
test al, al
je 0x5d40bd
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
cmp word [eax], 0x29
je 0x5d40d4
mov eax, dword [ebp - 8]
mov edx, 0x84
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d5397
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2c0], 0
je 0x5d422c
mov edx, dword [ebp - 0x2c]
cmp edx, dword [eax + 0x128]
jle 0x5d422c
mov eax, dword [ebp - 8]
mov edx, 0x85
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
lea esi, [esi]
jmp 0x5d422c
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
add eax, 8
cmp eax, dword [edx + 0x288]
jb 0x5d413c
mov eax, dword [ebp - 8]
mov edx, 0x8c
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
mov byte [ebp - 0x48], 0
push 0x27
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
lea edx, [eax + 4]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x288]
mov eax, dword [ebp - 8]
call fcn.005d59a0
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x5d416d
mov eax, dword [eax - 4]
add eax, 3
mov edx, dword [ebp - 8]
shl eax, 1
add dword [edx + 0x294], eax
jmp 0x5d422c
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
add eax, 4
cmp eax, dword [edx + 0x288]
jb 0x5d41a4
mov eax, dword [ebp - 8]
mov edx, 0x85
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
mov byte [ebp - 0x48], 0xb
push 0x29
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
lea edx, [eax + 4]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x288]
mov eax, dword [ebp - 8]
call fcn.005d59a0
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x5d41d5
mov eax, dword [eax - 4]
add eax, 3
mov edx, dword [ebp - 8]
shl eax, 1
add dword [edx + 0x294], eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2c0], 0
je 0x5d422c
mov eax, dword [ebp - 8]
add eax, 0x114
mov edx, dword [ebp - 0x28]
call fcn.005d0500
mov dword [ebp - 0x2c], eax
cmp eax, 1
jge 0x5d422c
mov eax, dword [ebp - 8]
mov edx, 0x8e
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
nop
jmp 0x5d422c
mov eax, dword [ebp - 8]
mov edx, 0x78
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
mov al, byte [ebp - 0x48]
test al, al
je 0x5d42c8
sub al, 1
je 0x5d4288
sub al, 1
je 0x5d42c8
sub al, 1
je 0x5d4574
sub al, 1
je 0x5d473a
sub al, 1
je 0x5d45c4
sub al, 1
jb 0x5d5394
sub al, 1
jbe 0x5d4398
sub al, 2
jbe 0x5d4420
sub al, 1
je 0x5d4798
sub al, 1
je 0x5d47c4
jmp 0x5d5394
lea eax, [ebp - 0x24]
push eax
push 0xffff
push 0xffff
mov eax, dword [ebp - 8]
xor ecx, ecx
mov dl, 1
call fcn.005d1b10
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x5d42b0
xor edi, edi
jmp 0x5d5397
mov edx, dword [ebp - 0x24]
and edx, 0x1d
mov eax, dword [ebp - 4]
or edx, dword [eax]
mov eax, dword [ebp - 4]
mov dword [eax], edx
jmp 0x5d5394
test byte [ebp - 0x48], 0xff
jne 0x5d432c
mov eax, dword [ebp - 8]
add dword [eax + 0x12c], 1
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2c0], 0
jne 0x5d432c
cmp dword [ebp - 0x28], 0
je 0x5d432c
mov eax, dword [ebp - 8]
add eax, 0x114
mov edx, dword [ebp - 0x28]
call fcn.005d0500
test eax, eax
jl 0x5d4310
mov eax, dword [ebp - 8]
mov edx, 0x8f
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
mov esi, esi
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x12c]
mov eax, dword [ebp - 8]
add eax, 0x114
mov edx, dword [ebp - 0x28]
call fcn.005d05a0
lea esi, [esi]
cmp byte [ebp - 0x48], 2
jne 0x5d4352
lea eax, [ebp - 0x24]
push eax
push 0x34
push 0x35
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x29c]
mov eax, dword [ebp - 8]
mov dl, 1
call fcn.005d1b10
mov dword [ebp - 0xc], eax
jmp 0x5d4370
lea eax, [ebp - 0x24]
push eax
push 0x32
push 0x33
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x298]
mov eax, dword [ebp - 8]
mov dl, 1
call fcn.005d1b10
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x5d4380
xor edi, edi
jmp 0x5d5397
mov edx, dword [ebp - 0x24]
and edx, 0x1d
mov eax, dword [ebp - 4]
or edx, dword [eax]
mov eax, dword [ebp - 4]
mov dword [eax], edx
jmp 0x5d5394
mov al, byte [ebp - 0x48]
cmp al, 6
jb 0x5d43d0
sub al, 6
je 0x5d43ac
sub al, 1
je 0x5d43c0
jmp 0x5d43d0
mov eax, dword [ebp - 8]
mov dx, 0x37
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d43d0
mov eax, dword [ebp - 8]
mov dx, 0x38
call fcn.005d0980
mov dword [ebp - 0xc], eax
nop
lea eax, [ebp - 0x24]
push eax
push 0xffff
push 0x39
mov eax, dword [ebp - 8]
xor ecx, ecx
mov dl, 1
call fcn.005d1b10
mov edi, eax
test edi, edi
je 0x5d5397
lea esi, [esi]
mov edx, edi
mov eax, dword [ebp - 8]
call fcn.005d6060
mov ecx, eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.005d08f0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
and eax, 0xfffffffe
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d5394
mov al, byte [ebp - 0x48]
cmp al, 8
jb 0x5d4458
sub al, 8
je 0x5d4434
sub al, 1
je 0x5d4448
jmp 0x5d4458
mov eax, dword [ebp - 8]
mov dx, 0x3a
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d4458
mov eax, dword [ebp - 8]
mov dx, 0x3b
call fcn.005d0980
mov dword [ebp - 0xc], eax
nop
mov eax, dword [ebp - 8]
mov esi, dword [eax + 0x2b0]
mov edx, dword [ebp - 8]
lea eax, [edx + 0x2a0]
cmp eax, dword [edx + 0x2b0]
je 0x5d447e
mov eax, dword [ebp - 8]
add dword [eax + 0x2b0], 0xa
jmp 0x5d4488
mov eax, dword [ebp - 8]
add dword [eax + 0x2b4], 5
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x12c]
lea eax, [ebp - 0x24]
push eax
push 0xffff
push 0x3c
mov eax, dword [ebp - 8]
xor ecx, ecx
mov dl, 1
call fcn.005d1b10
mov edi, eax
test edi, edi
je 0x5d5397
mov esi, esi
mov edx, edi
mov eax, dword [ebp - 8]
call fcn.005d6060
mov ecx, eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.005d08f0
mov edx, dword [ebp - 8]
lea eax, [edx + 0x2a0]
cmp eax, dword [edx + 0x2b0]
je 0x5d4560
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x10], edi
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
push 0x3c
mov eax, dword [ebp - 8]
push dword [eax + 0x2b0]
push 2
lea ecx, [ebp - 0x38]
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.005da260
test al, al
je 0x5d4519
mov word [esi + 8], 2
jmp 0x5d4555
mov eax, dword [ebp - 8]
cmp ebx, dword [eax + 0x12c]
jge 0x5d453c
cmp byte [eax + 5], 0
jne 0x5d453c
mov eax, dword [ebp - 8]
mov edx, 0x99
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d4555
mov eax, dword [ebp - 0x24]
and eax, 0x10
cmp eax, 0x10
jne 0x5d454f
mov word [esi + 8], 1
jmp 0x5d4555
mov word [esi + 8], 0
mov eax, dword [ebp - 0x30]
mov dword [esi], eax
mov eax, dword [ebp - 0x34]
mov dword [esi + 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
and eax, 0xfffffffe
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d5394
mov eax, dword [ebp - 8]
add eax, 0x114
mov edx, dword [ebp - 0x28]
call fcn.005d0500
mov esi, eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2c0], 0
je 0x5d45a8
test esi, esi
jge 0x5d45a8
mov eax, dword [ebp - 8]
mov edx, 0x8e
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
mov esi, esi
mov eax, dword [ebp - 8]
mov cl, byte [eax + 0x2da]
mov edx, esi
mov eax, dword [ebp - 8]
call fcn.005d0a30
mov dword [ebp - 0xc], eax
jmp 0x5d5394
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x294]
jmp 0x5d45da
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
cmp eax, dword [edx + 0x288]
jae 0x5d45fa
mov ax, word [eax]
cmp ax, 0x29
je 0x5d45fa
cmp ax, 0x3a
jne 0x5d45d0
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x2da]
mov dword [ebp - 0x40], eax
mov ax, word [edx + 0x2de]
mov word [ebp - 0x3c], ax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
cmp word [eax], 0x3a
jne 0x5d46ad
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x294]
sub edx, ebx
mov eax, edx
shr eax, 0x1f
add edx, eax
sar edx, 1
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x2da]
mov eax, ebx
call fcn.005cfb70
test al, al
je 0x5d46ad
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
lea eax, [ebp - 0x24]
push eax
push 0xffff
push 0x13
mov eax, dword [ebp - 8]
xor ecx, ecx
mov dl, 1
call fcn.005d1b10
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x40]
mov dword [edx + 0x2da], eax
mov ax, word [ebp - 0x3c]
mov word [edx + 0x2de], ax
cmp dword [ebp - 0xc], 0
jne 0x5d4698
xor edi, edi
jmp 0x5d5397
mov edx, dword [ebp - 0x24]
and edx, 0x1d
mov eax, dword [ebp - 4]
or edx, dword [eax]
mov eax, dword [ebp - 4]
mov dword [eax], edx
jmp 0x5d5394
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
cmp word [eax], 0x29
jne 0x5d4710
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x294]
sub edx, ebx
mov eax, edx
shr eax, 0x1f
add edx, eax
sar edx, 1
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x2da]
mov eax, ebx
call fcn.005cfb70
test al, al
je 0x5d4710
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
mov eax, dword [ebp - 8]
mov dx, 0x13
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 0x40
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d5394
mov eax, dword [ebp - 8]
mov edx, 0x7f
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d5397
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
cmp eax, dword [edx + 0x288]
jae 0x5d4752
cmp word [eax], 0x29
jne 0x5d4730
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
cmp word [eax], 0x29
je 0x5d4778
mov eax, dword [ebp - 8]
mov edx, 0x7d
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d5397
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
mov eax, dword [ebp - 8]
mov dx, 0x13
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d5394
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov eax, dword [ebp - 8]
mov dx, 0x30
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
mov byte [eax + 0x290], 1
jmp 0x5d5394
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 8]
mov dx, 0x41
call fcn.005d09f0
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
mov byte [eax + 0x290], 1
lea esi, [esi]
jmp 0x5d5394
mov eax, dword [ebp - 8]
mov edx, 0x72
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d5397
mov eax, dword [ebp - 8]
mov edx, 0x73
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d5397
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
cmp eax, dword [edx + 0x288]
jb 0x5d4850
mov eax, dword [ebp - 8]
mov edx, 0x74
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d5397
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov ax, word [eax]
sub ax, 0x31
cmp ax, 0x49
ja case.0x5d486f.58
and eax, 0xffff
jmp dword [eax*4 + 0x6dd280]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 0x40
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov eax, dword [ebp - 8]
mov dx, 0x25
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d4f54
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 0x40
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov eax, dword [ebp - 8]
mov dx, 0x26
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d4f54
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 0x40
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov eax, dword [ebp - 8]
mov dx, 1
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d4f54
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 0x40
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov eax, dword [ebp - 8]
mov dx, 2
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d4f54
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 0x40
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov eax, dword [ebp - 8]
mov dx, 0x19
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d4f54
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 0x40
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov eax, dword [ebp - 8]
mov dx, 0x1a
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
mov dx, 0xc
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
mov dx, 0xd
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
mov dx, 0x10
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
mov dx, 0x11
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
mov dx, 0xe
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
mov dx, 0xf
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
mov dx, 0x29
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
mov dx, 0x2a
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
mov dx, 0x27
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
mov dx, 0x28
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d4f54
mov edx, dword [ebp - 8]
cmp byte [edx + 0x2c0], 0
je 0x5d4ae8
mov eax, dword [edx + 0x294]
movzx eax, word [eax]
sub eax, 0x30
cmp eax, dword [edx + 0x128]
jle 0x5d4ae8
mov eax, dword [ebp - 8]
mov edx, 0x9a
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
movzx edx, word [eax]
sub edx, 0x30
mov eax, dword [ebp - 8]
mov cl, byte [eax + 0x2da]
mov eax, dword [ebp - 8]
call fcn.005d0a30
mov dword [ebp - 0xc], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov ax, word [eax + 2]
cmp ax, 0x27
jb 0x5d4d6c
sub ax, 0x27
je 0x5d4b58
sub ax, 9
jb 0x5d4d6c
sub ax, 9
jbe 0x5d4cd0
sub ax, 3
je 0x5d4b58
sub ax, 0x3f
je 0x5d4c44
jmp 0x5d4d6c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov ax, word [eax + 2]
cmp ax, 0x27
jb 0x5d4bc4
sub ax, 0x27
je 0x5d4ba0
sub ax, 0x15
jne 0x5d4bc4
nop
push 0x3e
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
lea edx, [eax + 4]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x288]
mov eax, dword [ebp - 8]
call fcn.005d59a0
jmp 0x5d4bc4
push 0x27
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
lea edx, [eax + 4]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x288]
mov eax, dword [ebp - 8]
call fcn.005d59a0
nop
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x5d4bce
mov eax, dword [eax - 4]
add eax, 2
mov edx, dword [ebp - 8]
shl eax, 1
add dword [edx + 0x294], eax
mov eax, dword [ebp - 8]
add eax, 0x114
mov edx, dword [ebp - 0x28]
call fcn.005d0500
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2c0], 0
je 0x5d4c14
cmp dword [ebp - 0x2c], 1
jge 0x5d4c14
mov eax, dword [ebp - 8]
mov edx, 0x8e
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
lea esi, [esi]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 8]
mov dx, 0x41
call fcn.005d09f0
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov eax, dword [ebp - 8]
mov byte [eax + 0x290], 1
jmp 0x5d4f54
push 0x7d
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
lea edx, [eax + 4]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x288]
mov eax, dword [ebp - 8]
call fcn.005d59a0
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x5d4c71
mov eax, dword [eax - 4]
add eax, 2
mov edx, dword [ebp - 8]
shl eax, 1
add dword [edx + 0x294], eax
mov eax, dword [ebp - 8]
add eax, 0x114
mov edx, dword [ebp - 0x28]
call fcn.005d0500
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2c0], 0
je 0x5d4cb4
cmp dword [ebp - 0x2c], 1
jge 0x5d4cb4
mov eax, dword [ebp - 8]
mov edx, 0x8e
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
mov eax, dword [ebp - 8]
mov cl, byte [eax + 0x2da]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.005d0a30
mov dword [ebp - 0xc], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
mov eax, dword [ebp - 8]
lea edx, [eax + 0x294]
lea ecx, [ebp - 0x2c]
mov eax, ebp
call fcn.005d5910
test al, al
jne 0x5d4d08
mov eax, dword [ebp - 8]
mov edx, 0x9a
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d5397
mov eax, dword [ebp - 8]
sub dword [eax + 0x294], 2
cmp dword [ebp - 0x2c], 0
jne 0x5d4d28
mov eax, dword [ebp - 8]
mov edx, 0x9a
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2c0], 0
je 0x5d4d50
mov edx, dword [ebp - 0x2c]
cmp edx, dword [eax + 0x128]
jle 0x5d4d50
mov eax, dword [ebp - 8]
mov edx, 0x9a
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
nop
mov eax, dword [ebp - 8]
mov cl, byte [eax + 0x2da]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.005d0a30
mov dword [ebp - 0xc], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
mov edx, 0x9a
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d4f54
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov ax, word [eax + 2]
cmp ax, 0x27
jb 0x5d4e2c
sub ax, 0x27
je 0x5d4ddc
sub ax, 0x15
je 0x5d4db4
sub ax, 0x3f
je 0x5d4e04
jmp 0x5d4e2c
push 0x3e
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
lea edx, [eax + 4]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x288]
mov eax, dword [ebp - 8]
call fcn.005d59a0
jmp 0x5d4e3c
push 0x27
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
lea edx, [eax + 4]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x288]
mov eax, dword [ebp - 8]
call fcn.005d59a0
jmp 0x5d4e3c
push 0x7d
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
lea edx, [eax + 4]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x288]
mov eax, dword [ebp - 8]
call fcn.005d59a0
jmp 0x5d4e3c
mov eax, dword [ebp - 8]
mov edx, 0x9a
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x5d4e46
mov eax, dword [eax - 4]
add eax, 2
mov edx, dword [ebp - 8]
shl eax, 1
add dword [edx + 0x294], eax
mov eax, dword [ebp - 8]
add eax, 0x114
mov edx, dword [ebp - 0x28]
call fcn.005d0500
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2c0], 0
je 0x5d4e8c
cmp dword [ebp - 0x2c], 1
jge 0x5d4e8c
mov eax, dword [ebp - 8]
mov edx, 0x8e
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
lea esi, [esi]
mov eax, dword [ebp - 8]
mov cl, byte [eax + 0x2da]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.005d0a30
mov dword [ebp - 0xc], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
mov dx, 0x46
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 0x40
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
mov dl, 1
call fcn.005d0c80
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
xor dl, dl
call fcn.005d0c80
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
mov dx, 0x1b
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x5d4f54
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x288]
mov eax, dword [ebp - 8]
lea edx, [eax + 0x294]
mov eax, dword [ebp - 8]
call fcn.005d2f60
mov dx, ax
mov eax, ebp
call fcn.005d57e0
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
jmp 0x5d5394
mov eax, dword [ebp - 8]
sub dword [eax + 0x294], 2
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2df], 0
je 0x5d5088
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
cmp word [eax], 0x23
je 0x5d4fc4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov ax, word [eax]
cmp ax, 9
jb 0x5d4fb8
sub ax, 0xa
jbe 0x5d4fb4
sub ax, 3
je 0x5d4fb4
sub ax, 0x13
jne 0x5d4fb8
mov esi, esi
mov al, 1
jmp 0x5d4fbc
xor al, al
mov esi, esi
test al, al
je 0x5d5088
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
cmp word [eax], 0x23
jne 0x5d5042
jmp 0x5d4fea
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x294]
cmp eax, dword [edx + 0x288]
jae 0x5d501a
mov ax, word [eax]
cmp ax, 0xd
je 0x5d501a
cmp ax, 0xa
je 0x5d501a
jmp 0x5d4fe0
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov ax, word [eax]
cmp ax, 0xd
je 0x5d5010
cmp ax, 0xa
jne 0x5d5074
jmp 0x5d5010
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov ax, word [eax]
cmp ax, 9
jb 0x5d506c
sub ax, 0xa
jbe 0x5d5068
sub ax, 3
je 0x5d5068
sub ax, 0x13
jne 0x5d506c
mov esi, esi
mov al, 1
jmp 0x5d5070
xor al, al
mov esi, esi
test al, al
jne 0x5d5038
mov eax, dword [ebp - 8]
mov dx, 0x13
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d5392
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x288]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x294]
xor ebx, ebx
jmp 0x5d510a
mov ax, word [ecx]
cmp ax, 0x24
jb 0x5d50fc
sub ax, 0x24
je 0x5d50f8
sub ax, 4
jb 0x5d50fc
sub ax, 2
jbe 0x5d50f8
sub ax, 1
je 0x5d50f8
sub ax, 3
je 0x5d50f8
sub ax, 0x11
je 0x5d50f8
sub ax, 0x1c
jb 0x5d50fc
sub ax, 1
jbe 0x5d50f8
sub ax, 2
je 0x5d50f8
sub ax, 0x1d
jb 0x5d50fc
sub ax, 1
ja 0x5d50fc
nop
mov al, 1
jmp 0x5d5100
xor al, al
mov esi, esi
test al, al
jne 0x5d510e
add ebx, 1
add ecx, 2
cmp edx, ecx
ja 0x5d50a8
mov esi, ebx
test esi, esi
jg 0x5d51cc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
cmp word [eax], 0x7b
je 0x5d513d
mov eax, dword [ebp - 8]
mov edx, 0x77
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x5d5397
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x288]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
lea ebx, [eax + 2]
xor ecx, ecx
jmp 0x5d51c2
mov ax, word [ebx]
cmp ax, 0x24
jb 0x5d51b4
sub ax, 0x24
je 0x5d51b0
sub ax, 4
jb 0x5d51b4
sub ax, 2
jbe 0x5d51b0
sub ax, 1
je 0x5d51b0
sub ax, 3
je 0x5d51b0
sub ax, 0x11
je 0x5d51b0
sub ax, 0x1c
jb 0x5d51b4
sub ax, 1
jbe 0x5d51b0
sub ax, 2
je 0x5d51b0
sub ax, 0x1d
jb 0x5d51b4
sub ax, 1
ja 0x5d51b4
nop
mov al, 1
jmp 0x5d51b8
xor al, al
mov esi, esi
test al, al
jne 0x5d51c6
add ecx, 1
add ebx, 2
cmp edx, ebx
ja 0x5d5160
lea esi, [ecx + 1]
lea esi, [esi]
mov eax, dword [ebp - 8]
mov edx, esi
shl edx, 1
add edx, dword [eax + 0x294]
mov ax, word [edx]
cmp esi, 1
jle 0x5d51fc
cmp ax, 0x2a
je 0x5d51f9
cmp ax, 0x2b
je 0x5d51f9
cmp ax, 0x3f
je 0x5d51f9
cmp ax, 0x7b
jne 0x5d51fc
sub esi, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 1
mov edx, dword [ebp - 4]
mov dword [edx], eax
cmp esi, 1
jne 0x5d521c
mov eax, dword [ebp - 4]
mov eax, dword [eax]
or eax, 2
mov edx, dword [ebp - 4]
mov dword [edx], eax
nop
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2da], 0
je 0x5d5239
mov eax, dword [ebp - 8]
mov dx, 0x14
call fcn.005d0980
mov dword [ebp - 0xc], eax
jmp 0x5d5248
mov eax, dword [ebp - 8]
mov dx, 8
call fcn.005d0980
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 8]
lea eax, [edx + 0x2a0]
cmp eax, dword [edx + 0x2b0]
je 0x5d5271
mov eax, dword [edx + 0x2b0]
mov dword [eax], 0
add dword [edx + 0x2b0], 4
jmp 0x5d536d
add dword [edx + 0x2b4], 2
jmp 0x5d536d
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2df], 0
je 0x5d52c0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov ax, word [eax]
cmp ax, 9
jb 0x5d52b4
sub ax, 0xa
jbe 0x5d52b0
sub ax, 3
je 0x5d52b0
sub ax, 0x13
jne 0x5d52b4
mov al, 1
jmp 0x5d52b8
xor al, al
mov esi, esi
test al, al
jne 0x5d5360
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2da], 0
je 0x5d530c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
movzx eax, word [eax]
mov ax, word [eax + eax + 0x623bd0]
mov ecx, dword [ebp - 8]
lea edx, [ecx + 0x2a0]
cmp edx, dword [ecx + 0x2b0]
je 0x5d5303
mov edx, dword [ecx + 0x2b0]
mov word [edx], ax
add dword [ecx + 0x2b0], 2
jmp 0x5d5342
add dword [ecx + 0x2b4], 1
jmp 0x5d5342
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x294]
mov dx, word [eax]
mov ecx, dword [ebp - 8]
lea eax, [ecx + 0x2a0]
cmp eax, dword [ecx + 0x2b0]
je 0x5d533b
mov eax, dword [ecx + 0x2b0]
mov word [eax], dx
add dword [ecx + 0x2b0], 2
jmp 0x5d5342
add dword [ecx + 0x2b4], 1
mov eax, dword [ebp - 8]
lea edx, [eax + 0x2a0]
cmp edx, dword [eax + 0x2b0]
je 0x5d5360
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2bc]
add dword [eax], 1
nop
mov eax, dword [ebp - 8]
add dword [eax + 0x294], 2
sub esi, 1
test esi, esi
jle 0x5d5392
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2df], 0
je 0x5d5280
mov eax, dword [eax + 0x294]
cmp word [eax], 0x23
jne 0x5d5280
mov esi, esi
mov edi, dword [ebp - 0xc]
xor eax, eax
pop edx
add esp, 0xc
mov dword fs:[eax], edx
mov eax, ebp
call fcn.005d31e0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret