Function at 0x50824f
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x154
mov eax, dword [0x60940c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x154], ecx
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x144], ecx
mov ecx, dword [ebp + 0x20]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x148], ecx
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x14c], ecx
mov ecx, dword [ebp + 0x28]
mov dword [ebp - 0x124], ecx
mov ecx, dword [ebx]
mov dword [ebp - 0x138], ebx
mov ebx, dword [eax]
xor eax, eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xa4], eax
mov eax, ecx
shr eax, 0xb
and eax, 1
mov dword [ebp - 0x150], edx
mov edx, dword [edx]
mov dword [ebp - 0x9c], eax
mov eax, ecx
shr eax, 9
and eax, 1
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0x118], eax
xor eax, 1
mov dword [ebp - 0x11c], eax
mov eax, ecx
mov esi, dword [ebp + 0x14]
and eax, 1
mov edi, dword [ebp + 0x30]
mov dword [ebp - 0x68], esi
mov esi, dword [ebp + 0x34]
mov dword [ebp - 0xf4], eax
xor eax, eax
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x70], esi
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x114], edx
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xb0], 0xfffffffe
mov dword [ebp - 0xcc], 0xfffffffe
mov dword [ebp - 0xb4], 0xfffffffe
mov dword [ebp - 0x94], 0xfffffffe
mov dword [ebp - 0xe8], 0x7fffffeb
mov dword [ebp - 0x140], 1
jmp 0x507c90
mov eax, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x70]
nop dword [eax]
movzx ecx, byte [ebx]
mov dword [ebp - 0x60], ecx
test ecx, ecx
jne 0x507cae
test eax, eax
je 0x507cae
mov ebx, eax
xor eax, eax
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x7c], eax
movzx ecx, byte [ebx]
mov dword [ebp - 0x60], ecx
test esi, esi
je 0x507d57
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x3c]
add eax, 0xffffff9c
add eax, ecx
cmp edx, eax
ja 0x50baa1
mov eax, dword [ebp - 0x108]
cmp edx, eax
cmovb edx, eax
mov dword [ebp - 0x58], edx
mov ecx, dword [ebp - 0x58]
mov edx, dword [esi]
sub ecx, eax
mov eax, dword [ebp - 0xe8]
sub eax, edx
cmp eax, ecx
jl 0x50ba93
sub edx, dword [ebp - 0x108]
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x58]
add edx, eax
mov ecx, dword [ebp - 0x78]
mov dword [esi], edx
test ecx, ecx
je 0x507d3b
cmp ecx, dword [ebp - 0x114]
jbe 0x507d4c
mov ebx, dword [ebp - 0x114]
sub eax, ecx
push eax
push ecx
push ebx
call fcn.0054dae0
mov edx, dword [ebp - 0x58]
mov eax, ebx
sub eax, dword [ebp - 0x78]
add esp, 0xc
add edx, eax
mov dword [ebp - 0x78], ebx
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x108], edx
jmp 0x507d66
mov edx, dword [ebp - 0x114]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x108], edx
jmp 0x507d66
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x108], edx
jmp 0x507d66
mov eax, dword [edi + 0x3c]
add eax, dword [edi + 0x10]
cmp dword [edi + 0x20], eax
ja 0x50bde5
mov ecx, dword [ebp - 0x60]
test ecx, ecx
je 0x507ece
cmp ecx, 0x5c
jne 0x507d97
cmp byte [ebx + 1], 0x45
lea eax, [ebx + 1]
jne 0x507d97
mov ebx, eax
mov dword [ebp - 0xa0], 0
mov eax, dword [ebp - 0x7c]
inc ebx
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
cmp dword [ebp - 0xa0], 0
je 0x507ea8
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x507de2
test esi, esi
jne 0x507dd8
movzx ecx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl ecx, 8
or ecx, eax
sub ebx, ecx
mov ecx, dword [ebp - 0xdc]
sub ebx, dword [edi + 0x18]
mov eax, ebx
sar eax, 8
mov byte [ecx + 4], al
mov byte [ecx + 5], bl
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0xdc], 0
test dword [ebp - 0x8c], 0x4000
mov ecx, dword [ebp - 0x60]
je case.0x508120.1
mov word [edx], 0xff76
mov eax, ebx
sub eax, dword [edi + 0x18]
sar eax, 8
mov byte [edx + 2], al
lea eax, [edx + 6]
sub bl, byte [edi + 0x18]
mov byte [edx + 3], bl
mov word [edx + 4], 0
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0xdc], edx
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x9c], 0
mov esi, 1
mov byte [ebp - 0xc], cl
je 0x507e55
cmp ecx, 0xc0
jb 0x507e55
mov al, byte [ebx + 1]
inc ebx
and al, 0xc0
cmp al, 0x80
jne 0x507e55
nop
mov dword [ebp - 0x5c], ebx
movzx eax, byte [ebx]
inc ebx
mov byte [ebp + esi - 0xc], al
inc esi
movzx eax, byte [ebx]
and al, 0xc0
cmp al, 0x80
je 0x507e40
mov ebx, dword [ebp - 0x8c]
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
cmp dword [ebp - 0x9c], 0
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0xa4], eax
je 0x50b970
test bl, 1
je 0x50b973
movzx edx, byte [ebp - 0xc]
cmp edx, 0xc0
jb 0x50b8f4
test dl, 0x20
jne 0x50b864
movzx eax, byte [ebp - 0xb]
and edx, 0x1f
jmp 0x50b8ec
cmp ecx, 0x5c
jne 0x507ece
cmp byte [ebx + 1], 0x51
lea eax, [ebx + 1]
jne 0x507ece
mov ebx, eax
mov dword [ebp - 0xa0], 1
mov eax, dword [ebp - 0x7c]
inc ebx
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
mov esi, dword [ebp - 0x8c]
and esi, 8
mov dword [ebp - 0x90], esi
je 0x507f6e
mov eax, dword [ebp - 0x64]
mov edi, ebx
mov eax, dword [eax + 0xc]
test byte [eax + ecx], 1
je 0x507f01
inc ebx
mov dword [ebp - 0x5c], ebx
movzx ecx, byte [ebx]
mov dword [ebp - 0x60], ecx
test byte [eax + ecx], 1
jne 0x507ef1
cmp ecx, 0x23
jne 0x507f60
inc ebx
mov dword [ebp - 0x5c], ebx
mov dl, byte [ebx]
test dl, dl
je 0x507f60
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax + 0x84]
test ecx, ecx
je 0x507fb7
mov eax, dword [eax + 0x1c]
cmp ebx, eax
jae 0x507ff2
mov edx, dword [ebp - 0x64]
push dword [ebp - 0x9c]
lea esi, [edx + 0x88]
push esi
push eax
push ecx
push ebx
call fcn.005243a0
mov ebx, dword [ebp - 0x5c]
add esp, 0x14
test eax, eax
je 0x507ff2
add ebx, dword [esi]
mov dword [ebp - 0x5c], ebx
mov esi, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x58]
cmp ebx, edi
mov edi, dword [ebp - 0x64]
ja 0x507c86
cmp ecx, 0x28
jne 0x508039
cmp byte [ebx + 1], 0x3f
jne 0x508065
cmp byte [ebx + 2], 0x23
jne 0x508065
add ebx, 3
mov dword [ebp - 0x5c], ebx
mov al, byte [ebx]
test al, al
je 0x507fa9
cmp al, 0x29
je 0x508022
inc ebx
mov dword [ebp - 0x5c], ebx
mov al, byte [ebx]
test al, al
jne 0x507f97
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x12
jmp 0x50bdee
mov ecx, dword [eax + 0x88]
lea esi, [eax + 0x88]
mov eax, dword [eax + 0x1c]
sub eax, ecx
cmp ebx, eax
ja 0x507ff2
mov eax, dword [ebp - 0x64]
cmp dl, byte [eax + 0x8c]
jne 0x507ff2
cmp ecx, 1
je 0x507f52
mov edx, dword [ebp - 0x64]
mov al, byte [ebx + 1]
cmp al, byte [edx + 0x8d]
je 0x507f52
inc ebx
cmp dword [ebp - 0x9c], 0
mov dword [ebp - 0x5c], ebx
je 0x508013
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
jne 0x508013
inc ebx
mov dword [ebp - 0x5c], ebx
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
je 0x508007
mov dl, byte [ebx]
test dl, dl
jne 0x507f10
jmp 0x507f57
cmp byte [ebx], 0
je 0x507fa9
mov edx, dword [ebp - 0x58]
inc ebx
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
cmp ecx, 0x2a
je 0x5080c1
cmp ecx, 0x2b
je 0x5080c1
cmp ecx, 0x3f
je 0x5080c1
cmp ecx, 0x7b
jne 0x508065
lea eax, [ebx + 1]
push eax
call fcn.0050da40
add esp, 4
test eax, eax
jne 0x5080c1
mov ecx, dword [ebp - 0xdc]
xor edx, edx
mov eax, dword [ebp - 0x7c]
test ecx, ecx
je 0x5080c9
test eax, eax
jne 0x5080c9
mov eax, dword [ebp - 0xfc]
dec dword [ebp - 0xfc]
test eax, eax
jg 0x5080c6
cmp dword [ebp - 0x70], edx
jne 0x5080b9
mov eax, dword [ebp - 0xdc]
movzx ecx, byte [ecx + 2]
shl ecx, 8
movzx eax, byte [eax + 3]
or ecx, eax
sub ebx, ecx
mov ecx, dword [ebp - 0xdc]
sub ebx, dword [edi + 0x18]
mov eax, ebx
sar eax, 8
mov byte [ecx + 4], al
mov byte [ecx + 5], bl
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0xdc], edx
jmp 0x5080c6
mov edx, 1
mov eax, dword [ebp - 0x7c]
test dword [ebp - 0x8c], 0x4000
je 0x50810d
test edx, edx
jne 0x50810d
test eax, eax
jne 0x50810d
mov eax, dword [ebp - 0x58]
lea ecx, [eax + 1]
mov dword [ebp - 0xdc], eax
mov byte [eax], 0x76
mov eax, ebx
mov byte [ecx], 0xff
sub eax, dword [edi + 0x18]
sar eax, 8
mov byte [ecx + 1], al
lea eax, [ecx + 5]
sub bl, byte [edi + 0x18]
mov byte [ecx + 2], bl
mov word [ecx + 3], dx
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x60]
cmp ecx, 0x7c
ja case.0x508120.1
movzx eax, byte [ecx + 0x50be40]
jmp dword [eax*4 + 0x50be0c]
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x78], 0
test cl, 2
je 0x508172
cmp dword [ebp - 0x94], 0xfffffffe
jne 0x508156
mov dword [ebp - 0x94], 0xffffffff
mov dword [ebp - 0xcc], 0xffffffff
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
mov byte [edx], 0x1c
inc edx
mov ebx, dword [ebp - 0x5c]
inc ebx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
mov byte [edx], 0x1b
inc edx
mov ebx, dword [ebp - 0x5c]
inc ebx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
test byte [ebp - 0x8c], 2
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x70]
setne al
add al, 0x19
mov dword [ebp - 0x78], 0
mov byte [edx], al
inc edx
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x7c]
inc ebx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
mov ecx, dword [ebp - 0x94]
mov eax, 0xffffffff
mov edx, dword [ebp - 0x58]
cmp ecx, 0xfffffffe
mov esi, dword [edi + 0x20]
cmove ecx, eax
mov dword [ebp - 0x78], edx
mov eax, dword [ebp - 0xd0]
sub esi, dword [edi + 0x10]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x8c]
shr eax, 2
and al, 1
mov dword [ebp - 0x94], ecx
or al, 0xc
mov dword [ebp - 0xcc], ecx
mov ecx, dword [ebp - 0xb4]
mov byte [edx], al
inc edx
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x7c]
inc ebx
mov dword [ebp - 0xa4], esi
mov esi, dword [ebp - 0x70]
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
test dword [edi + 0x60], 0x2000000
je case.0x508120.1
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x40
jmp 0x50bdee
push 6
lea eax, [ebx + 1]
push 0x5ba2b0
push eax
call fcn.005668d0
add esp, 0xc
test eax, eax
mov eax, dword [ebp - 0x5c]
jne 0x50827f
mov edx, dword [ebp - 0x58]
add eax, 7
mov ebx, str._b__w_
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x5c], ebx
jmp 0x507c89
push 6
inc eax
push str._:_:__
push eax
call fcn.005668d0
add esp, 0xc
test eax, eax
jne 0x5082ad
mov eax, dword [ebp - 0x5c]
mov ebx, str._b___w_
mov edx, dword [ebp - 0x58]
add eax, 7
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x5c], ebx
jmp 0x507c89
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x78], esi
mov al, byte [ebx + 1]
cmp al, 0x3a
je 0x5082d1
cmp al, 0x2e
je 0x5082d1
cmp al, 0x3d
jne 0x5082ec
lea eax, [ebp - 0xd8]
push eax
push ebx
call fcn.00506f80
mov ebx, dword [ebp - 0x5c]
add esp, 8
test eax, eax
jne 0x50bb22
xor ecx, ecx
mov dword [ebp - 0x88], ecx
inc ebx
mov dword [ebp - 0x5c], ebx
movzx edx, byte [ebx]
mov dword [ebp - 0x84], edx
cmp edx, 0x5c
jne 0x50832e
inc ebx
cmp byte [ebx], 0x45
je 0x5082f4
push 3
push 0x5ba2c0
push ebx
call fcn.005668d0
mov ebx, dword [ebp - 0x5c]
add esp, 0xc
test eax, eax
jne 0x508344
mov ecx, dword [ebp - 0x88]
add ebx, 3
jmp 0x5082f4
test ecx, ecx
jne 0x508402
cmp edx, 0x5e
jne 0x508402
lea ecx, [edx - 0x5d]
jmp 0x5082ee
mov edx, dword [ebp - 0x84]
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0xc8], eax
xor edi, edi
lea eax, [esi + 4]
mov dword [ebp - 0xa8], ecx
xor esi, esi
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x90], eax
xorps xmm0, xmm0
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x6c], ecx
movups xmmword [ebp - 0x2c], xmm0
movups xmmword [ebp - 0x1c], xmm0
test edx, edx
je 0x50bb14
nop word [eax + eax]
cmp dword [ebp - 0x9c], 0
mov dword [ebp - 0xec], edi
mov dword [ebp - 0x134], edi
mov dword [ebp - 0xc0], edi
mov edi, esi
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x130], esi
je 0x508542
cmp edx, 0xc0
jb 0x508542
movzx edx, byte [ebx]
mov dword [ebp - 0x84], edx
cmp edx, 0xc0
jb 0x508542
test dl, 0x20
jne 0x50846b
movzx eax, byte [ebx + 1]
inc ebx
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
mov dword [ebp - 0x84], edx
jmp 0x50853f
cmp edx, 0x5d
jne 0x50834a
test dword [edi + 0x60], 0x2000000
je 0x50834a
mov edx, dword [ebp - 0x58]
test ecx, ecx
mov esi, dword [ebp - 0x70]
mov ecx, 0xd
mov eax, 0x9d
cmovne eax, ecx
mov ecx, dword [ebp - 0x94]
mov byte [edx], al
inc edx
mov ebx, dword [ebp - 0x5c]
cmp ecx, 0xfffffffe
mov eax, 0xffffffff
mov dword [ebp - 0x58], edx
cmove ecx, eax
mov eax, dword [ebp - 0xd0]
inc ebx
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
movzx ecx, byte [ebx + 1]
mov eax, dword [ebp - 0x84]
and ecx, 0x3f
test dl, 0x10
jne 0x508499
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
add ebx, 2
jmp 0x508537
test dl, 8
jne 0x5084c6
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [ebx + 3]
shl ecx, 6
and eax, 0x3f
or eax, ecx
add ebx, 3
jmp 0x508537
test dl, 4
jne 0x5084fc
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [ebx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [ebx + 4]
shl ecx, 6
and eax, 0x3f
or eax, ecx
add ebx, 4
jmp 0x508537
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [ebx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [ebx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [ebx + 5]
shl ecx, 6
and eax, 0x3f
or eax, ecx
add ebx, 5
mov dword [ebp - 0x84], eax
mov edx, eax
mov dword [ebp - 0x5c], ebx
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0xc8]
cmova ecx, dword [ebp - 0x140]
cmp dword [ebp - 0x70], 0
mov dword [ebp - 0xc8], ecx
je 0x50857e
mov ecx, dword [ebp - 0x90]
cmp eax, ecx
jbe 0x50857e
mov edx, dword [ebp - 0x70]
sub eax, ecx
mov dword [ebp - 0x80], ecx
add dword [edx], eax
mov edx, dword [ebp - 0x84]
cmp dword [ebp - 0xa0], 0
je 0x5085b3
cmp edx, 0x5c
jne 0x508856
cmp byte [ebx + 1], 0x45
lea eax, [ebx + 1]
jne 0x508856
mov edi, dword [ebp - 0x74]
mov ebx, eax
mov dword [ebp - 0xa0], 0
xor eax, eax
jmp 0x508e42
cmp edx, 0x5b
jne 0x50880c
mov al, byte [ebx + 1]
cmp al, 0x3a
je 0x5085cf
cmp al, 0x2e
je 0x5085cf
cmp al, 0x3d
jne 0x508856
lea eax, [ebp - 0xd8]
push eax
push ebx
call fcn.00506f80
mov ebx, dword [ebp - 0x5c]
add esp, 8
test eax, eax
je 0x508856
cmp byte [ebx + 1], 0x3a
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x98], 0
mov edi, dword [eax + 8]
jne 0x50bac9
add ebx, 2
mov dword [ebp - 0x5c], ebx
cmp byte [ebx], 0x5e
jne 0x508627
inc ebx
mov dword [ebp - 0x98], 1
mov dword [ebp - 0xa8], 1
mov dword [ebp - 0x5c], ebx
mov eax, dword [ebp - 0xd8]
sub eax, ebx
push eax
push ebx
call fcn.00506f30
mov esi, eax
add esp, 8
test esi, esi
js 0x50bab8
mov eax, dword [ebp - 0x8c]
test al, 1
je 0x508655
xor ecx, ecx
cmp esi, 2
cmovle esi, ecx
test eax, 0x20000000
je 0x5086fa
mov ecx, dword [ebp - 0x98]
mov eax, ecx
neg eax
sbb eax, eax
and eax, 0xe
add eax, esi
mov ebx, dword [eax*4 + 0x6092e8]
test ebx, ebx
je 0x508692
mov eax, dword [ebp - 0xd8]
mov esi, dword [ebp - 0x60]
inc eax
mov edi, dword [ebp - 0x74]
dec ebx
mov dword [ebp - 0x7c], eax
jmp 0x508e3c
mov eax, esi
sub eax, 8
je 0x508755
sub eax, 1
je 0x50874e
sub eax, 1
je 0x508747
test ecx, ecx
je 0x5086fa
mov eax, dword [ebp - 0xc8]
test eax, eax
jne 0x5086c9
mov eax, dword [ebp - 0xd8]
cmp byte [eax + 2], 0x5d
je 0x5086fa
mov eax, dword [ebp - 0x80]
mov byte [eax], 2
mov eax, dword [ebp - 0x80]
inc eax
push eax
push 0x100
mov dword [ebp - 0x80], eax
call fcn.00524690
mov ecx, dword [ebp - 0x80]
add ecx, eax
push ecx
push 0x10ffff
mov dword [ebp - 0x80], ecx
call fcn.00524690
add esp, 0x10
add dword [ebp - 0x80], eax
lea ecx, [esi + esi*2]
mov eax, dword [ecx*4 + 0x5b9da8]
mov esi, dword [ecx*4 + 0x5b9db0]
movups xmm0, xmmword [eax + edi]
movups xmmword [ebp - 0x54], xmm0
movups xmm0, xmmword [eax + edi + 0x10]
mov eax, dword [ecx*4 + 0x5b9dac]
movups xmmword [ebp - 0x44], xmm0
test eax, eax
js 0x5087af
xor ecx, ecx
lea edx, [eax + edi]
test esi, esi
js 0x5087a0
mov al, byte [edx + ecx]
or byte [ebp + ecx - 0x54], al
inc ecx
cmp ecx, 0x20
jb 0x508738
jmp 0x5087af
mov edx, 0xd
jmp 0x50875a
mov edx, 0xc
jmp 0x50875a
mov edx, 0xb
mov eax, dword [ebp - 0x80]
test ecx, ecx
mov ebx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0x60]
setne cl
mov edi, dword [ebp - 0x74]
add cl, 3
mov byte [eax], cl
mov ecx, 1
mov eax, dword [ebp - 0x80]
inc eax
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x80], eax
mov byte [eax], dl
mov eax, dword [ebp - 0x80]
inc eax
mov dword [ebp - 0x80], eax
mov byte [eax], 0
inc dword [ebp - 0x80]
inc ebx
mov eax, dword [ebp - 0xa0]
jmp 0x508e45
mov al, byte [edx + ecx]
not al
and byte [ebp + ecx - 0x54], al
inc ecx
cmp ecx, 0x20
jb 0x5087a0
test esi, esi
jns 0x5087b5
neg esi
cmp esi, 1
jne 0x5087c0
and byte [ebp - 0x53], 0xc3
jmp 0x5087c9
cmp esi, 2
jne 0x5087c9
and byte [ebp - 0x49], 0x7f
xor ecx, ecx
cmp dword [ebp - 0x98], ecx
je 0x5087e5
mov al, byte [ebp + ecx - 0x54]
not al
or byte [ebp + ecx - 0x2c], al
inc ecx
cmp ecx, 0x20
jb 0x5087d3
jmp 0x5087f3
mov al, byte [ebp + ecx - 0x54]
or byte [ebp + ecx - 0x2c], al
inc ecx
cmp ecx, 0x20
jb 0x5087e5
mov ebx, dword [ebp - 0xd8]
mov edi, 2
inc ebx
mov dword [ebp - 0x74], edi
mov esi, 1
jmp 0x508e39
cmp edx, 0x5c
jne 0x508856
mov ebx, dword [ebp - 0x64]
lea eax, [ebp - 0x10c]
push 1
push dword [ebp - 0x8c]
push dword [ebx + 0x40]
push dword [ebp - 0x68]
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.00506760
mov ecx, dword [ebp - 0x68]
add esp, 0x18
mov esi, eax
cmp dword [ecx], 0
jne 0x50bac1
test esi, esi
jne 0x50889d
mov edx, dword [ebp - 0x10c]
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0x84], edx
cmp byte [ebx + 1], 0x5c
jne 0x50887e
nop dword [eax]
cmp byte [ebx + 2], 0x45
lea eax, [ebx + 2]
jne 0x50887e
mov ebx, eax
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x5c], ebx
cmp byte [ebx + 1], 0x5c
je 0x508860
mov ecx, ebx
cmp edx, 0xd
je 0x50888e
cmp edx, 0xa
jne 0x508b87
mov esi, dword [ebp - 0x64]
or dword [esi + 0x64], 0x800
jmp 0x508b8a
cmp esi, 5
jne 0x5088a7
lea edx, [esi + 3]
jmp 0x50884d
cmp esi, 0xc
je 0x50bae2
cmp esi, 0x1a
jne 0x5088e8
mov ebx, dword [ebp - 0x5c]
cmp byte [ebx + 1], 0x5c
jne 0x5088d2
cmp byte [ebx + 2], 0x45
jne 0x5088d2
mov esi, dword [ebp - 0x60]
add ebx, 2
mov edi, dword [ebp - 0x74]
jmp 0x508e3c
mov esi, dword [ebp - 0x60]
mov eax, 1
mov edi, dword [ebp - 0x74]
mov dword [ebp - 0xa0], eax
jmp 0x508e42
cmp esi, 0x19
je 0x50893e
inc dword [ebp - 0x60]
lea eax, [esi - 6]
add dword [ebp - 0x74], 2
mov edx, dword [ebx + 8]
cmp eax, 0x1c
ja case.0x50890a.12
movzx eax, byte [eax + 0x50bef4]
jmp dword [eax*4 + 0x50bec0]
mov ebx, dword [esi*4 + 0x60925c]
mov esi, edi
mov eax, dword [ebp - 0x5c]
dec ebx
mov edi, dword [ebp - 0x74]
mov dword [ebp - 0x7c], eax
jmp 0x508e39
xor ecx, ecx
nop dword [eax + eax]
mov al, byte [edx + ecx + 0x40]
or byte [ebp + ecx - 0x2c], al
inc ecx
cmp ecx, 0x20
jb 0x508930
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x74]
jmp 0x508e3c
mov dword [ebp - 0xa8], 1
xor ecx, ecx
nop dword [eax + eax]
mov al, byte [edx + ecx + 0x40]
not al
or byte [ebp + ecx - 0x2c], al
inc ecx
cmp ecx, 0x20
jb 0x508960
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x74]
jmp 0x508e3c
xor ecx, ecx
mov al, byte [edx + ecx + 0xa0]
or byte [ebp + ecx - 0x2c], al
inc ecx
cmp ecx, 0x20
jb 0x508980
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x74]
jmp 0x508e3c
mov dword [ebp - 0xa8], 1
xor ecx, ecx
nop dword [eax + eax]
mov al, byte [edx + ecx + 0xa0]
not al
or byte [ebp + ecx - 0x2c], al
inc ecx
cmp ecx, 0x20
jb 0x5089b0
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x74]
jmp 0x508e3c
lea eax, [ebp - 0x2c]
xor esi, esi
sub edx, eax
lea ecx, [ebp - 0x2c]
add ecx, esi
inc esi
mov al, byte [ecx + edx]
or byte [ecx], al
cmp esi, 0x20
jb 0x5089d8
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x74]
jmp 0x508e3c
lea eax, [ebp - 0x2c]
mov dword [ebp - 0xa8], 1
xor esi, esi
sub edx, eax
lea ecx, [ebp - 0x2c]
add ecx, esi
inc esi
mov al, byte [ecx + edx]
not al
or byte [ecx], al
cmp esi, 0x20
jb 0x508a07
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x74]
jmp 0x508e3c
push 0xffffffffffffffff
push 0x5bc430
push ebx
push dword [ebp - 0x8c]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00505b20
mov ebx, dword [ebp - 0x5c]
add esp, 0x18
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x74]
jmp 0x508e3c
push 0x5bc430
push ebx
push dword [ebp - 0x8c]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00505c70
mov ebx, dword [ebp - 0x5c]
add esp, 0x14
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x74]
jmp 0x508e3c
push 0xffffffffffffffff
push 0x5bc480
push ebx
push dword [ebp - 0x8c]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00505b20
mov ebx, dword [ebp - 0x5c]
add esp, 0x18
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x74]
jmp 0x508e3c
push 0x5bc480
push ebx
push dword [ebp - 0x8c]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00505c70
mov ebx, dword [ebp - 0x5c]
add esp, 0x14
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x74]
jmp 0x508e3c
push ecx
lea eax, [ebp - 0xb0]
mov dword [ebp - 0x98], 0
push eax
lea eax, [ebp - 0x98]
mov dword [ebp - 0xb0], 0
push eax
lea eax, [ebp - 0x12c]
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0050d7a0
add esp, 0x14
test eax, eax
je 0x50bac1
xor eax, eax
mov edi, dword [ebp - 0x74]
cmp esi, 0x10
mov esi, dword [ebp - 0x130]
mov dword [ebp - 0x60], esi
sete al
cmp eax, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x80]
sete cl
add cl, 3
mov byte [eax], cl
mov ecx, dword [ebp - 0x80]
movzx eax, byte [ebp - 0x98]
inc ecx
mov dword [ebp - 0x80], ecx
mov byte [ecx], al
mov ecx, dword [ebp - 0x80]
movzx eax, byte [ebp - 0xb0]
inc ecx
mov dword [ebp - 0x80], ecx
mov byte [ecx], al
mov ecx, 1
inc dword [ebp - 0x80]
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x6c], ecx
jmp 0x508e45
test byte [ebp - 0x8c], 0x40
mov ebx, dword [ebp - 0x5c]
jne 0x50bad7
movzx edx, byte [ebx]
jmp 0x508850
mov esi, dword [ebp - 0x64]
mov edi, dword [ebp - 0xa0]
test edi, edi
jne 0x508ddf
cmp byte [ebx + 1], 0x2d
jne 0x508ddf
add ebx, 2
mov dword [ebp - 0x5c], ebx
cmp byte [ebx], 0x5c
jne 0x508bf7
nop dword [eax]
cmp byte [ebx + 1], 0x45
jne 0x508bc3
add ebx, 2
mov dword [ebp - 0x5c], ebx
cmp byte [ebx], 0x5c
je 0x508bb0
jmp 0x508bf7
cmp byte [ebx], 0x5c
jne 0x508bf7
cmp byte [ebx + 1], 0x51
jne 0x508bf7
add ebx, 2
mov dword [ebp - 0x5c], ebx
cmp byte [ebx], 0x5c
jne 0x508bec
cmp byte [ebx + 1], 0x45
jne 0x508bec
add ebx, 2
mov dword [ebp - 0x5c], ebx
cmp byte [ebx], 0x5c
je 0x508bc8
jmp 0x508bf7
mov edi, 1
mov dword [ebp - 0xa0], edi
mov al, byte [ebx]
test al, al
je 0x508dda
test edi, edi
jne 0x508c0d
cmp al, 0x5d
je 0x508dda
cmp dword [ebp - 0x9c], 0
movzx eax, al
mov dword [ebp - 0x60], eax
mov dword [ebp - 0xb0], eax
je 0x508d1e
cmp eax, 0xc0
jb 0x508d1e
test al, 0x20
jne 0x508c4c
mov ecx, dword [ebp - 0x60]
inc ebx
and ecx, 0x1f
shl ecx, 6
movzx eax, byte [ebx]
and eax, 0x3f
or eax, ecx
jmp 0x508d12
movzx ecx, byte [ebx + 1]
mov edx, dword [ebp - 0x84]
and ecx, 0x3f
test al, 0x10
jne 0x508c79
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
add ebx, 2
jmp 0x508d12
test al, 8
jne 0x508ca2
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [ebx + 3]
shl ecx, 6
and eax, 0x3f
or eax, ecx
add ebx, 3
jmp 0x508d12
test al, 4
jne 0x508cd7
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [ebx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [ebx + 4]
shl ecx, 6
and eax, 0x3f
or eax, ecx
add ebx, 4
jmp 0x508d12
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [ebx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [ebx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [ebx + 5]
shl ecx, 6
and eax, 0x3f
or eax, ecx
add ebx, 5
mov dword [ebp - 0x60], eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x5c], ebx
test edi, edi
jne 0x508dae
cmp eax, 0x5c
jne 0x508d7f
mov edi, dword [ebp - 0x68]
lea eax, [ebp - 0xb0]
push 1
push dword [ebp - 0x8c]
push dword [esi + 0x40]
push edi
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.00506760
add esp, 0x18
cmp dword [edi], 0
jne 0x50bac1
mov ebx, dword [ebp - 0x5c]
test eax, eax
je 0x508d71
cmp eax, 5
jne 0x50baf0
mov edx, dword [ebp - 0x84]
lea ecx, [eax + 3]
jmp 0x508db4
mov ecx, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x84]
jmp 0x508db4
cmp eax, 0x5b
jne 0x508dae
mov al, byte [ebx + 1]
cmp al, 0x3a
je 0x508d93
cmp al, 0x2e
je 0x508d93
cmp al, 0x3d
jne 0x508dae
lea eax, [ebp - 0xd8]
push eax
push ebx
call fcn.00506f80
mov ebx, dword [ebp - 0x5c]
add esp, 8
test eax, eax
jne 0x50bafb
mov edi, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x60]
cmp ecx, edx
jb 0x50bb09
je 0x508ddf
mov edi, 2
mov dword [ebp - 0x74], edi
cmp ecx, 0xd
je 0x508dd0
cmp ecx, 0xa
jne 0x508dd7
or dword [esi + 0x64], 0x800
push ecx
jmp 0x508e16
mov ebx, ecx
mov dword [ebp - 0x5c], ebx
mov edi, dword [ebp - 0x134]
inc edi
cmp dword [ebp - 0xec], 2
cmovge edi, dword [ebp - 0xc0]
cmp dword [ebp - 0xa0], 0
mov dword [ebp - 0x74], edi
jne 0x508e15
cmp dword [ebp - 0x6c], 0
jne 0x508e15
cmp edi, 1
jne 0x508e15
cmp byte [ebx + 1], 0x5d
je 0x508fdc
push edx
push edx
push esi
push dword [ebp - 0x8c]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00505ef0
mov ebx, dword [ebp - 0x5c]
mov esi, eax
add esp, 0x18
add esi, dword [ebp - 0x98]
mov dword [ebp - 0x60], esi
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x6c]
inc ebx
mov dword [ebp - 0x5c], ebx
movzx edx, byte [ebx]
mov dword [ebp - 0x84], edx
test edx, edx
jne 0x508e7f
mov edx, dword [ebp - 0x7c]
test edx, edx
je 0x50bb14
lea ebx, [edx + 1]
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x5c], ebx
movzx edx, byte [ebx]
mov dword [ebp - 0x84], edx
test edx, edx
je 0x50bb14
cmp edx, 0x5d
jne 0x508390
test eax, eax
jne 0x508390
mov edx, dword [ebp - 0x90]
mov ebx, 1
cmp dword [ebp - 0x80], edx
mov edi, 0xffffffff
mov eax, dword [ebp - 0xc8]
cmova eax, ebx
mov ebx, dword [ebp - 0x94]
cmp ebx, 0xfffffffe
cmove ebx, edi
mov edi, dword [ebp - 0xd0]
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0xcc], ebx
mov ebx, dword [ebp - 0xb8]
mov dword [ebp - 0xc8], ebx
mov ebx, dword [ebp - 0xb4]
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0xb0], ebx
test eax, eax
je 0x50912e
mov eax, dword [ebp - 0x8c]
test ecx, ecx
mov ecx, dword [ebp - 0xa8]
jne 0x508f0f
test ecx, ecx
je 0x508f0f
test eax, 0x20000000
je 0x509134
mov edx, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x88]
test edx, edx
je 0x508f63
test ecx, ecx
je 0x508f63
test edi, edi
jne 0x508f63
test eax, 0x20000000
jne 0x508f63
mov eax, dword [ebp - 0x80]
mov byte [eax], 2
mov eax, dword [ebp - 0x80]
inc eax
mov dword [ebp - 0x80], eax
test edx, edx
je 0x508f63
push eax
push 0x100
call fcn.00524690
mov ecx, dword [ebp - 0x80]
add ecx, eax
push ecx
push 0x10ffff
mov dword [ebp - 0x80], ecx
call fcn.00524690
add esp, 0x10
add dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x6c]
mov byte [eax], 0
inc dword [ebp - 0x80]
test edi, edi
mov byte [ecx], 0x70
setne al
mov byte [ecx + 3], al
test ebx, ebx
je 0x508f86
or al, 4
mov byte [ecx + 3], al
test esi, esi
jle 0x5090fa
or byte [ecx + 3], 2
add ecx, 4
mov eax, dword [ebp - 0x80]
sub eax, ecx
mov dword [ebp - 0x58], ecx
push eax
push ecx
lea eax, [ecx + 0x20]
push eax
call fcn.0054dae0
add esp, 0xc
test edi, edi
je 0x508fbf
test ebx, ebx
jne 0x508fbf
xor ecx, ecx
not byte [ebp + ecx - 0x2c]
inc ecx
cmp ecx, 0x20
jb 0x508fb5
movups xmm0, xmmword [ebp - 0x2c]
mov eax, dword [ebp - 0x58]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x1c]
movups xmmword [eax + 0x10], xmm0
mov ecx, dword [ebp - 0x80]
add ecx, 0x20
jmp 0x5090fd
mov eax, dword [ebp - 0xb8]
inc ebx
mov edi, dword [ebp - 0x88]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0xb0], eax
test edi, edi
je 0x5090c5
mov eax, dword [ebp - 0x94]
mov ecx, 0xffffffff
mov ebx, dword [ebp - 0x9c]
cmp eax, 0xfffffffe
cmove eax, ecx
mov dword [ebp - 0x94], eax
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x8c]
test ebx, ebx
je 0x50908d
test al, 1
je 0x50908f
mov eax, edx
test eax, eax
jns 0x509040
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x5be150]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x50905b
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5c0350]
movzx eax, byte [eax*8 + 0x5bcad3]
test eax, eax
je 0x509087
mov edx, dword [ebp - 0x58]
mov word [edx], 0x90f
mov byte [edx + 2], al
add edx, 3
mov dword [ebp - 0x58], edx
jmp 0x509186
mov eax, dword [ebp - 0x8c]
test al, 1
mov ecx, dword [ebp - 0x58]
setne al
add al, 0x1f
mov byte [ecx], al
inc ecx
mov dword [ebp - 0x58], ecx
test ebx, ebx
je 0x5090bd
cmp edx, 0x7f
jbe 0x5090bd
push ecx
push edx
call fcn.00524690
mov edx, dword [ebp - 0x58]
add esp, 8
add edx, eax
mov dword [ebp - 0x58], edx
jmp 0x509186
mov byte [ecx], dl
inc ecx
jmp 0x509181
cmp dword [ebp - 0x9c], 0
je 0x5090ea
cmp edx, 0x7f
jbe 0x5090ea
lea eax, [ebp - 0xc]
push eax
push edx
call fcn.00524690
mov edi, dword [ebp - 0x64]
add esp, 8
mov esi, eax
jmp 0x507e55
mov edi, dword [ebp - 0x64]
mov esi, 1
mov byte [ebp - 0xc], dl
jmp 0x507e55
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x78]
mov eax, ecx
mov edi, dword [ebp - 0x64]
sub eax, edx
sar eax, 8
mov dword [ebp - 0x58], ecx
mov byte [edx + 1], al
mov al, cl
mov ecx, edx
sub al, cl
mov byte [ecx + 2], al
mov ebx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
inc ebx
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
mov ecx, dword [ebp - 0xa8]
mov ebx, dword [ebp - 0x70]
test ebx, ebx
je 0x509142
mov eax, dword [ebp - 0x80]
sub eax, edx
add dword [ebx], eax
mov edi, dword [ebp - 0x88]
cmp edi, ecx
mov ecx, dword [ebp - 0x58]
setne al
add al, 0x6e
mov byte [ecx], al
inc ecx
mov dword [ebp - 0x58], ecx
test ebx, ebx
jne 0x50917e
test edi, edi
je 0x50916f
xor ecx, ecx
not byte [ebp + ecx - 0x2c]
inc ecx
cmp ecx, 0x20
jb 0x509162
mov ecx, dword [ebp - 0x58]
movups xmm0, xmmword [ebp - 0x2c]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [ebp - 0x1c]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
mov dword [ebp - 0x58], ecx
mov edx, ecx
mov eax, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0xb4]
inc ebx
mov edi, dword [ebp - 0x64]
mov esi, dword [ebp - 0x70]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
test edx, edx
je case.0x508120.1
mov edx, dword [ebp - 0x68]
lea eax, [ebp - 0xd4]
push edx
push eax
lea eax, [ebp - 0xbc]
push eax
lea eax, [ebx + 1]
push eax
call fcn.0050ea60
add esp, 0x10
mov ebx, eax
cmp dword [edx], 0
mov dword [ebp - 0x5c], ebx
jne 0x50bdee
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xbc]
jmp 0x509228
xor ecx, ecx
or eax, 0xffffffff
jmp 0x509219
mov ecx, 1
or eax, 0xffffffff
jmp 0x509219
xor ecx, ecx
mov eax, 1
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x78], 0
je 0x50bb3d
test ecx, ecx
jne 0x509269
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0xd0], edx
mov edx, dword [ebp - 0xcc]
mov dword [ebp - 0x94], edx
mov edx, dword [ebp - 0xc8]
mov dword [ebp - 0xb8], edx
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 0xb4], edx
cmp ecx, eax
mov dword [ebp - 0xc0], 0
mov eax, dword [ebp - 0x78]
mov edx, 2
cmove edx, dword [ebp - 0xc0]
mov dword [ebp - 0xec], edx
mov dword [ebp - 0x98], 0
mov dword [ebp - 0xac], eax
test esi, esi
je 0x509359
inc ebx
mov ecx, dword [edi + 0xc]
movzx eax, byte [ebx]
test byte [eax + ecx], 1
je 0x5092bb
nop
movzx eax, byte [ebx + 1]
inc ebx
test byte [eax + ecx], 1
jne 0x5092b0
cmp byte [ebx], 0x23
jne 0x509355
mov dl, byte [ebx + 1]
inc ebx
test dl, dl
je 0x5092a3
nop dword [eax]
mov ecx, dword [edi + 0x84]
mov eax, dword [edi + 0x1c]
test ecx, ecx
je 0x509301
cmp ebx, eax
jae 0x50932b
push dword [ebp - 0x9c]
lea esi, [edi + 0x88]
push esi
push eax
push ecx
push ebx
call fcn.005243a0
add esp, 0x14
test eax, eax
je 0x50932b
add ebx, dword [esi]
jmp 0x5092a3
mov ecx, dword [edi + 0x88]
lea esi, [edi + 0x88]
sub eax, ecx
cmp ebx, eax
ja 0x50932b
cmp dl, byte [edi + 0x8c]
jne 0x50932b
cmp ecx, 1
je 0x5092fd
mov al, byte [ebx + 1]
cmp al, byte [edi + 0x8d]
je 0x5092fd
inc ebx
cmp dword [ebp - 0x9c], 0
je 0x50934a
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
jne 0x50934a
nop dword [eax]
mov al, byte [ebx + 1]
inc ebx
and al, 0xc0
cmp al, 0x80
je 0x509340
mov dl, byte [ebx]
test dl, dl
jne 0x5092d0
jmp 0x5092a3
dec ebx
mov dword [ebp - 0x5c], ebx
cmp byte [ebx + 1], 0x28
jne 0x5093a5
cmp byte [ebx + 2], 0x3f
jne 0x5093a5
cmp byte [ebx + 3], 0x23
jne 0x5093a5
add ebx, 4
mov dword [ebp - 0x5c], ebx
mov al, byte [ebx]
test al, al
je 0x507fa9
nop dword [eax + eax]
cmp al, 0x29
je 0x50939c
inc ebx
mov dword [ebp - 0x5c], ebx
mov al, byte [ebx]
test al, al
jne 0x509380
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x12
jmp 0x50bdee
cmp byte [ebx], 0
je 0x507fa9
mov cl, byte [ebx + 1]
cmp cl, 0x2b
jne 0x5093c4
inc ebx
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x98], 1
mov dword [ebp - 0x5c], ebx
jmp 0x5093e1
cmp cl, 0x3f
jne 0x5093d8
mov ecx, dword [ebp - 0x11c]
inc ebx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x5c], ebx
jmp 0x5093e1
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x78]
cmp byte [eax], 0x75
jne 0x50945f
push 3
push eax
add eax, 3
push eax
call fcn.0054dae0
mov eax, dword [ebp - 0x78]
add esp, 0xc
add dword [ebp - 0x58], 6
cmp dword [ebp - 0x70], 0
mov word [eax], 0x81
mov byte [eax + 2], 6
mov word [eax + 6], 0x78
mov byte [eax + 8], 6
mov dword [ebp - 0xf0], 9
jne 0x50945c
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x20]
add eax, 2
cmp edx, eax
jb 0x509459
movzx eax, byte [edx - 2]
movzx ecx, byte [edx - 1]
shl eax, 8
or ecx, eax
mov eax, dword [ebp - 0x78]
sub eax, dword [edi + 0x14]
inc eax
cmp ecx, eax
jne 0x509459
lea eax, [ecx + 3]
sar eax, 8
add cl, 3
mov byte [edx - 2], al
mov eax, dword [edi + 0x20]
mov byte [eax - 1], cl
mov eax, dword [ebp - 0x78]
mov ebx, dword [ebp - 0x5c]
mov dl, byte [eax]
mov byte [ebp - 0xe1], dl
cmp dl, 0x1d
je 0x509c07
cmp dl, 0x1e
je 0x509c07
cmp dl, 0x1f
je 0x509c07
cmp dl, 0x20
je 0x509c07
cmp dl, 0x17
jae 0x5094a9
mov esi, 0x34
movzx ecx, dl
mov dword [ebp - 0x88], esi
mov dword [ebp - 0x84], ecx
jmp 0x509cdc
cmp dl, 0x6e
je 0x509b49
cmp dl, 0x6f
je 0x509b49
cmp dl, 0x70
je 0x509b49
cmp dl, 0x71
je 0x509b49
cmp dl, 0x72
je 0x509b49
cmp dl, 0x73
je 0x509b49
cmp dl, 0x74
je 0x509b49
cmp dl, 0x7d
jb 0x509b36
cmp dl, 0x87
ja 0x509b36
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x78]
sub eax, ecx
mov esi, dword [ebp - 0xa4]
mov dword [ebp - 0x88], eax
xor eax, eax
mov dword [ebp - 0x90], esi
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x84], eax
cmp dl, 0x87
jne 0x509531
cmp byte [ecx + 3], 0x91
je 0x509b08
mov ecx, dword [ebp - 0xbc]
cmp dl, 0x81
jae 0x509560
test ecx, ecx
jg 0x509b08
mov eax, dword [ebp - 0x60]
test eax, eax
js 0x509550
cmp eax, 1
jle 0x509563
mov eax, 1
mov dword [ebp - 0x60], eax
mov dword [ebp - 0xd4], eax
jmp 0x509563
mov eax, dword [ebp - 0x60]
test ecx, ecx
jne 0x50962e
push dword [ebp - 0xa4]
push edi
push dword [ebp - 0x9c]
cmp eax, 1
jg 0x5095d4
mov eax, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x78]
push 1
push ebx
mov byte [eax], cl
call fcn.005060e0
push dword [ebp - 0x88]
lea esi, [ebx + 1]
push ebx
push esi
call fcn.0054dae0
inc dword [ebp - 0x58]
add esp, 0x20
mov edx, dword [ebp - 0x60]
test edx, edx
jne 0x5095b5
mov byte [ebx], 0xa1
mov ebx, dword [ebp - 0x5c]
jmp 0x509b08
mov al, byte [ebp - 0x6c]
sub al, 0x6e
mov dword [ebp - 0x84], ebx
mov byte [ebx], al
dec edx
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0x78], esi
mov esi, dword [ebp - 0x90]
jmp 0x50979c
mov ebx, dword [ebp - 0x58]
push 4
push dword [ebp - 0x78]
mov byte [ebx], 0
call fcn.005060e0
push dword [ebp - 0x88]
mov eax, dword [ebp - 0x78]
push eax
add eax, 4
push eax
call fcn.0054dae0
mov ecx, dword [ebp - 0x78]
add ebx, 4
mov al, byte [ebp - 0x6c]
add esp, 0x20
mov edx, dword [ebp - 0x60]
sub al, 0x6e
mov dword [ebp - 0x58], ebx
mov byte [ecx], al
mov byte [ecx + 1], 0x83
add ecx, 2
mov dword [ebp - 0xa8], ecx
mov word [ecx], 0
add ecx, 2
mov ebx, dword [ebp - 0x5c]
dec edx
mov dword [ebp - 0x78], ecx
jmp 0x50979c
cmp ecx, 1
jle 0x509793
cmp dword [ebp - 0x70], 0
je 0x509693
mov eax, dword [ebp - 0xf0]
dec ecx
mov edx, ecx
imul edx, eax
movd xmm1, ecx
movd xmm0, eax
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
comisd xmm1, xmmword [0x5ba370]
ja 0x50ba93
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
mov eax, dword [ebp - 0xe8]
sub eax, ecx
cmp eax, edx
jl 0x50ba93
lea eax, [edx + ecx]
mov ecx, dword [ebp - 0x70]
mov dword [ecx], eax
mov ecx, dword [ebp - 0xbc]
jmp 0x509793
cmp dword [ebp - 0x104], 0
je 0x5096bd
cmp dword [ebp - 0xb4], 0
jge 0x5096bd
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0x74], 1
cmp ecx, 1
jle 0x509793
mov ebx, dword [ebp - 0x88]
mov esi, dword [edi + 0x20]
sub esi, dword [edi + 0x10]
push ebx
push dword [ebp - 0x78]
push dword [ebp - 0x58]
call fcn.0054e520
mov edx, dword [ebp - 0x64]
add esp, 0xc
mov ecx, dword [edi + 0x3c]
mov edi, dword [ebp - 0x90]
sub ecx, esi
add ecx, edi
mov eax, dword [edx + 0x10]
add eax, 0xffffff9c
add eax, ecx
cmp dword [edx + 0x20], eax
jbe 0x509732
push edx
call fcn.0050c990
mov ecx, dword [ebp - 0x68]
add esp, 4
mov dword [ecx], eax
test eax, eax
jne 0x50bac1
mov edx, dword [ebp - 0x64]
mov ecx, dword [edx + 0x3c]
mov eax, dword [edx + 0x10]
sub ecx, esi
add ecx, edi
add eax, 0xffffff9c
add eax, ecx
cmp dword [edx + 0x20], eax
ja 0x509705
mov eax, dword [edx + 0x10]
lea edx, [eax + edi]
mov edi, dword [ebp - 0x64]
add eax, esi
cmp edx, eax
jae 0x509772
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [edi + 0x20]
add ecx, ebx
sar ecx, 8
mov byte [eax], cl
mov cl, byte [edx + 1]
add edx, 2
mov eax, dword [edi + 0x20]
add cl, bl
mov byte [eax + 1], cl
add dword [edi + 0x20], 2
mov eax, dword [edi + 0x10]
add eax, esi
cmp edx, eax
jb 0x509741
mov eax, dword [ebp - 0x74]
add dword [ebp - 0x58], ebx
inc eax
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x90], esi
mov dword [ebp - 0x74], eax
cmp eax, ecx
jl 0x5096d3
mov ebx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x60]
test edx, edx
jle 0x5097a4
sub edx, ecx
mov dword [ebp - 0xd4], edx
test edx, edx
js 0x5099a7
cmp dword [ebp - 0x70], 0
je 0x509806
test edx, edx
jle 0x509806
mov eax, dword [ebp - 0xf0]
add eax, 7
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mov ecx, eax
movd xmm1, eax
cvtdq2pd xmm1, xmm1
imul ecx, edx
mulsd xmm1, xmm0
sub ecx, 6
comisd xmm1, xmmword [0x5ba370]
ja 0x50ba93
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0xe8]
mov edx, dword [esi]
sub eax, edx
cmp eax, ecx
jl 0x50ba93
lea eax, [ecx + edx]
mov dword [esi], eax
jmp 0x509952
lea eax, [edx - 1]
mov dword [ebp - 0x90], eax
test eax, eax
js 0x509952
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x58]
sub cl, 0x6e
mov dword [ebp - 0x6c], ecx
mov ebx, dword [ebp - 0x64]
mov edi, dword [edi + 0x20]
sub edi, dword [ebx + 0x10]
mov byte [edx], cl
inc edx
mov dword [ebp - 0x58], edx
test eax, eax
je 0x509862
mov eax, dword [ebp - 0xa8]
mov byte [edx], 0x83
inc edx
test eax, eax
jne 0x509848
xor ecx, ecx
jmp 0x50984c
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov dword [ebp - 0xa8], edx
sar eax, 8
mov byte [edx], al
mov byte [edx + 1], cl
add edx, 2
mov dword [ebp - 0x58], edx
push dword [ebp - 0x88]
push dword [ebp - 0x78]
push edx
call fcn.0054e520
mov ecx, dword [ebx + 0x3c]
add esp, 0xc
mov eax, dword [ebx + 0x10]
sub ecx, edi
add ecx, esi
add eax, 0xffffff9c
add eax, ecx
cmp dword [ebx + 0x20], eax
jbe 0x5098b2
push ebx
call fcn.0050c990
mov ecx, dword [ebp - 0x68]
add esp, 4
mov dword [ecx], eax
test eax, eax
jne 0x50bac1
mov ecx, dword [ebx + 0x3c]
mov eax, dword [ebx + 0x10]
sub ecx, edi
add ecx, esi
add eax, 0xffffff9c
add eax, ecx
cmp dword [ebx + 0x20], eax
ja 0x509888
mov eax, dword [ebx + 0x10]
lea edx, [eax + esi]
add eax, edi
cmp edx, eax
jae 0x509926
mov eax, dword [ebp - 0x90]
mov ecx, 1
test eax, eax
mov ebx, 4
mov esi, ecx
mov eax, 4
cmovne esi, ebx
mov ebx, ecx
cmovne ebx, eax
nop
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0x64]
add ecx, dword [ebp - 0x88]
add ecx, esi
sar ecx, 8
mov eax, dword [eax + 0x20]
mov byte [eax], cl
mov eax, dword [ebp - 0x64]
mov cl, byte [edx + 1]
add edx, 2
add cl, byte [ebp - 0x88]
add cl, bl
mov eax, dword [eax + 0x20]
mov byte [eax + 1], cl
mov eax, dword [ebp - 0x64]
add dword [eax + 0x20], 2
mov eax, dword [eax + 0x10]
add eax, edi
cmp edx, eax
jb 0x5098e0
mov edx, dword [ebp - 0x58]
mov esi, edi
mov eax, dword [ebp - 0x90]
add edx, dword [ebp - 0x88]
sub eax, 1
mov ecx, dword [ebp - 0x6c]
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x90], eax
jns 0x509823
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0x58]
test esi, esi
je 0x509b77
mov ebx, ecx
mov edx, ecx
sub ebx, esi
inc ebx
sub edx, ebx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
mov eax, ebx
sub esi, ecx
neg ecx
sbb ecx, ecx
sar eax, 8
and esi, ecx
mov ecx, dword [ebp - 0x58]
mov byte [ecx], 0x78
mov byte [ecx + 1], al
mov byte [ecx + 2], bl
add ecx, 3
mov dword [ebp - 0x58], ecx
mov byte [edx + 1], al
mov byte [edx + 2], bl
test esi, esi
jne 0x509963
jmp 0x509b74
mov edx, dword [ebp - 0x58]
movzx ecx, byte [edx - 2]
lea edi, [edx - 3]
movzx eax, byte [edi + 2]
mov esi, edi
shl ecx, 8
or ecx, eax
sub esi, ecx
mov dword [ebp - 0x90], esi
mov al, byte [esi]
cmp al, 0x81
je 0x5099ce
cmp al, 0x82
jne 0x5099dd
mov ebx, dword [ebp - 0x98]
test ebx, ebx
je 0x5099e3
mov byte [esi], 0x83
jmp 0x5099f3
mov ebx, dword [ebp - 0x98]
cmp al, 0x81
je 0x509b2a
cmp al, 0x82
je 0x509b2a
cmp dword [ebp - 0x70], 0
jne 0x509a36
nop dword [eax]
push 0
push dword [ebp - 0x64]
push dword [ebp - 0x9c]
push edi
push esi
call fcn.0050c520
add esp, 0x14
test eax, eax
jne 0x509a72
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
add esi, ecx
cmp byte [esi], 0x77
je 0x509a00
mov esi, dword [ebp - 0x90]
mov edx, dword [ebp - 0x58]
cmp byte [esi], 0x87
jne 0x509a51
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
cmp byte [ecx + esi], 0x77
je 0x509a51
mov byte [esi], 0x8c
test ebx, ebx
je 0x509afb
mov al, byte [esi]
cmp al, 0x87
je 0x509a7d
cmp al, 0x8c
je 0x509a7d
mov ecx, dword [ebp - 0x58]
inc al
mov byte [esi], al
mov byte [edi], 0x7b
jmp 0x509adc
mov esi, dword [ebp - 0x90]
add byte [esi], 5
jmp 0x509a33
push dword [ebp - 0xa4]
mov ebx, edx
mov byte [edx], 0
push dword [ebp - 0x64]
sub ebx, esi
push dword [ebp - 0x9c]
push 3
push esi
call fcn.005060e0
push ebx
lea eax, [esi + 3]
push esi
push eax
call fcn.0054dae0
mov ecx, dword [ebp - 0x58]
add ebx, 3
add esp, 0x20
mov eax, 0x89
cmp byte [esi], 0x87
mov edx, 0x84
cmove eax, edx
mov byte [esi], al
mov eax, ebx
mov byte [ecx + 3], 0x7b
sar eax, 8
mov byte [ecx + 4], al
mov byte [ecx + 5], bl
add ecx, 6
mov dword [ebp - 0x58], ecx
mov byte [esi + 1], al
mov byte [esi + 2], bl
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x509ae9
mov byte [eax], 0x94
cmp dword [ebp - 0xbc], 2
mov ebx, dword [ebp - 0x5c]
jge 0x509b77
jmp 0x509b05
mov eax, dword [ebp - 0x6c]
add al, 0x79
mov byte [edi], al
mov ebx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x64]
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0xec]
or dword [edi + 0x68], eax
inc ebx
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x58]
add al, 0x79
mov byte [edi], al
jmp 0x509b74
cmp dl, 0x9d
je 0x509b08
mov eax, dword [ebp - 0x68]
mov dword [eax], 0xb
jmp 0x50bdee
mov ecx, dword [ebp - 0x60]
test ecx, ecx
jne 0x509b57
mov edx, eax
mov dword [ebp - 0x58], edx
jmp 0x509b0b
mov edx, dword [ebp - 0xbc]
test edx, edx
jne 0x509bb9
cmp ecx, 0xffffffff
jne 0x509bad
mov eax, dword [ebp - 0x6c]
add al, 0x62
mov ecx, dword [ebp - 0x58]
mov byte [ecx], al
inc ecx
mov dword [ebp - 0x58], ecx
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x9c]
cmp dword [ebp - 0x98], 0
je 0x509b05
mov eax, dword [ebp - 0xac]
movzx edx, byte [eax]
lea eax, [edx - 0x1d]
cmp eax, 0x53
ja case.0x509ba6.33
movzx eax, byte [eax + 0x50bf28]
jmp dword [eax*4 + 0x50bf14]
cmp ecx, 1
jne 0x509bca
mov eax, dword [ebp - 0x6c]
add al, 0x66
jmp 0x509b6b
cmp edx, 1
jne 0x509bca
cmp ecx, 0xffffffff
jne 0x509bca
mov eax, dword [ebp - 0x6c]
add al, 0x64
jmp 0x509b6b
mov ebx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x6c]
add al, 0x68
mov byte [ebx], al
mov eax, edx
sar eax, 8
mov byte [ebx + 1], al
xor eax, eax
mov byte [ebx + 2], dl
add ebx, 3
cmp ecx, 0xffffffff
mov dword [ebp - 0x58], ebx
cmove ecx, eax
mov eax, ecx
mov dword [ebp - 0xd4], ecx
mov byte [ebx + 1], cl
mov ecx, ebx
sar eax, 8
add ecx, 2
mov byte [ebx], al
jmp 0x509b71
movzx eax, dl
sub eax, 0x1e
je 0x509c3f
sub eax, 1
je 0x509c38
sub eax, 1
je 0x509c27
mov dword [ebp - 0x88], 0
xor esi, esi
jmp 0x509c4a
mov dword [ebp - 0x88], 0x27
mov esi, 0x27
jmp 0x509c4a
mov esi, 0x1a
jmp 0x509c44
mov esi, 0xd
mov dword [ebp - 0x88], esi
cmp dword [ebp - 0x9c], 0
je 0x509ca9
mov ecx, dword [ebp - 0x58]
dec ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x509ca9
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x509c71
mov al, byte [ecx - 1]
dec ecx
and al, 0xc0
cmp al, 0x80
je 0x509c67
mov edi, dword [ebp - 0x58]
mov eax, edi
sub eax, ecx
push eax
mov dword [ebp - 0x84], eax
lea eax, [ebp - 0x34]
push ecx
push eax
call fcn.0054e520
mov ecx, dword [ebp - 0x84]
add esp, 0xc
mov dl, byte [ebp - 0xe1]
or ecx, 0x10000000
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x84], ecx
jmp 0x509cdf
mov eax, dword [ebp - 0x58]
movzx ecx, byte [eax - 1]
mov dword [ebp - 0x84], ecx
cmp dl, 0x1e
ja 0x509cd9
cmp dword [ebp - 0xbc], 1
jle 0x509cd9
mov eax, dword [edi + 0x68]
or eax, dword [ebp - 0xf4]
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0x78]
mov edi, dword [ebp - 0x58]
cmp dl, 0x10
je 0x509cf5
cmp dl, 0xf
je 0x509cf5
mov dword [ebp - 0x74], 0xffffffff
or edx, 0xffffffff
jmp 0x509d00
movzx edx, byte [eax + 1]
movzx eax, byte [eax + 2]
mov dword [ebp - 0x74], eax
mov eax, edi
mov dword [ebp - 0xa8], edx
mov edi, dword [ebp - 0x78]
mov dword [ebp - 0x58], edi
mov edi, dword [ebp - 0x60]
test edi, edi
je 0x509b05
add dword [ebp - 0x6c], esi
mov esi, dword [ebp - 0xbc]
test esi, esi
jne 0x509d80
mov eax, dword [ebp - 0x6c]
mov ebx, edi
cmp ebx, 0xffffffff
jne 0x509d42
mov ebx, dword [ebp - 0x78]
add al, 0x21
mov byte [ebx], al
lea eax, [ebx + 1]
mov dword [ebp - 0x58], eax
jmp 0x509f2f
cmp ebx, 1
jne 0x509d59
mov ebx, dword [ebp - 0x78]
add al, 0x25
mov byte [ebx], al
lea eax, [ebx + 1]
mov dword [ebp - 0x58], eax
jmp 0x509f2f
mov esi, dword [ebp - 0x78]
add al, 0x27
mov byte [esi], al
lea eax, [esi + 1]
mov dword [ebp - 0x58], eax
mov eax, ebx
mov esi, dword [ebp - 0x58]
sar eax, 8
mov byte [esi], al
mov eax, esi
mov byte [eax + 1], bl
add eax, 2
mov dword [ebp - 0x58], eax
jmp 0x509f2f
cmp esi, 1
jne 0x509dd7
cmp edi, 0xffffffff
jne 0x509d9f
mov ebx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x6c]
add al, 0x23
mov byte [ebx], al
lea eax, [ebx + 1]
mov dword [ebp - 0x58], eax
jmp 0x509f2f
mov dword [ebp - 0x58], eax
cmp edi, 1
je 0x509b05
mov ebx, dword [ebp - 0x6c]
add bl, 0x27
mov byte [eax], bl
inc eax
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x58], eax
mov esi, dword [ebp - 0x58]
lea eax, [ebx - 1]
dec bl
sar eax, 8
mov byte [esi], al
mov eax, esi
mov byte [eax + 1], bl
add eax, 2
mov dword [ebp - 0x58], eax
jmp 0x509f2f
mov ebx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x88]
add al, 0x29
mov byte [ebx], al
lea eax, [ebx + 1]
mov ebx, dword [ebp - 0xbc]
mov dword [ebp - 0x58], eax
mov eax, ebx
mov esi, dword [ebp - 0x58]
sar eax, 8
mov byte [esi], al
mov eax, esi
mov byte [eax + 1], bl
add eax, 2
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x60]
test eax, eax
jns 0x509e7d
cmp dword [ebp - 0x9c], 0
je 0x509e60
test ecx, 0x10000000
je 0x509e60
mov ebx, dword [ebp - 0x58]
lea eax, [ebp - 0x34]
mov esi, ecx
and esi, 7
push esi
push eax
push ebx
call fcn.0054e520
mov ecx, dword [ebp - 0x84]
add esp, 0xc
mov edx, dword [ebp - 0xa8]
add ebx, esi
mov dword [ebp - 0x58], ebx
mov ebx, dword [ebp - 0x74]
mov esi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x6c]
add al, 0x21
mov byte [esi], al
mov eax, esi
inc eax
mov dword [ebp - 0x58], eax
jmp 0x509f32
mov eax, dword [ebp - 0x58]
mov byte [eax], cl
inc eax
mov dword [ebp - 0x58], eax
test edx, edx
js 0x509e48
mov ebx, dword [ebp - 0x74]
mov byte [eax], dl
mov byte [eax + 1], bl
add eax, 2
mov dword [ebp - 0x58], eax
jmp 0x509e4b
cmp eax, ebx
je 0x509f2c
cmp dword [ebp - 0x9c], 0
je 0x509ebf
test ecx, 0x10000000
je 0x509ebf
mov ebx, dword [ebp - 0x58]
lea eax, [ebp - 0x34]
mov esi, ecx
and esi, 7
push esi
push eax
push ebx
call fcn.0054e520
mov ecx, dword [ebp - 0x84]
add esp, 0xc
mov edx, dword [ebp - 0xa8]
add ebx, esi
mov eax, dword [ebp - 0x60]
jmp 0x509ec5
mov ebx, dword [ebp - 0x58]
mov byte [ebx], cl
inc ebx
mov dword [ebp - 0x58], ebx
test edx, edx
js 0x509ee0
mov byte [ebx], dl
inc ebx
mov dword [ebp - 0x58], ebx
mov esi, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x74]
mov byte [esi], bl
inc esi
mov dword [ebp - 0x58], esi
jmp 0x509ee6
mov ebx, dword [ebp - 0x74]
mov esi, dword [ebp - 0x58]
sub eax, dword [ebp - 0xbc]
mov dword [ebp - 0x60], eax
cmp eax, 1
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x6c]
jne 0x509f0a
add al, 0x25
mov byte [esi], al
mov eax, dword [ebp - 0x58]
inc eax
mov dword [ebp - 0x58], eax
jmp 0x509f32
inc dword [ebp - 0x58]
add al, 0x27
mov byte [esi], al
mov esi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x60]
sar eax, 8
mov byte [esi], al
mov eax, dword [ebp - 0x60]
mov byte [esi + 1], al
mov eax, esi
add eax, 2
mov dword [ebp - 0x58], eax
jmp 0x509f32
mov eax, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x74]
mov esi, dword [ebp - 0x9c]
test esi, esi
je 0x509f6c
test ecx, 0x10000000
je 0x509f6c
and ecx, 7
push ecx
mov dword [ebp - 0x84], ecx
lea ecx, [ebp - 0x34]
push ecx
push eax
call fcn.0054e520
mov ecx, dword [ebp - 0x58]
add esp, 0xc
add ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0xa8]
jmp 0x509f72
mov byte [eax], cl
mov ecx, dword [ebp - 0x58]
inc ecx
mov dword [ebp - 0x58], ecx
test edx, edx
js 0x509f84
mov byte [ecx], dl
mov byte [ecx + 1], bl
add ecx, 2
mov dword [ebp - 0x58], ecx
mov ebx, dword [ebp - 0x5c]
jmp 0x509b7d
mov eax, dword [ebp - 0xac]
mov al, byte [eax + 3]
cmp al, 0x10
je 0x509fb3
cmp al, 0xf
je 0x509fb3
movzx eax, byte [edx + 0x5bc388]
xor ecx, ecx
add eax, ecx
add dword [ebp - 0xac], eax
jmp 0x50a020
movzx eax, byte [edx + 0x5bc388]
mov ecx, 2
add eax, ecx
add dword [ebp - 0xac], eax
jmp 0x50a020
movzx eax, byte [edx + 0x5bc388]
mov edx, dword [ebp - 0xac]
add edx, eax
mov dword [ebp - 0xac], edx
test esi, esi
je case.0x509ba6.33
mov al, byte [edx - 1]
cmp al, 0xc0
jb case.0x509ba6.33
movzx eax, al
and eax, 0x3f
movzx eax, byte [eax + 0x5bba48]
add dword [ebp - 0xac], eax
jmp case.0x509ba6.33
add dword [ebp - 0xac], 0x21
jmp case.0x509ba6.33
mov edx, dword [ebp - 0xac]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add dword [ebp - 0xac], ecx
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0xac]
mov eax, ecx
sub eax, edx
mov dword [ebp - 0xc0], eax
test eax, eax
jle 0x509b05
movzx eax, byte [edx]
cmp eax, 0x76
jae 0x50a054
mov al, byte [eax + 0x5ba210]
test al, al
je 0x50a054
mov byte [edx], al
jmp 0x509b02
push dword [ebp - 0xa4]
mov edi, dword [ebp - 0x64]
push edi
push esi
mov byte [ecx], 0
push 3
push dword [ebp - 0xac]
call fcn.005060e0
mov ebx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xac]
push ebx
push eax
add eax, 3
push eax
call fcn.0054dae0
mov eax, dword [ebp - 0xac]
add ebx, 3
mov edx, dword [ebp - 0x58]
mov ecx, ebx
sar ecx, 8
add esp, 0x20
mov byte [eax], 0x81
mov byte [edx + 3], 0x78
mov byte [edx + 4], cl
mov byte [edx + 5], bl
add edx, 6
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x58], edx
mov byte [eax + 1], cl
mov eax, dword [ebp - 0xac]
mov byte [eax + 2], bl
mov ebx, dword [ebp - 0x5c]
jmp 0x509b0b
inc ebx
mov dword [ebp - 0x5c], ebx
mov dl, byte [ebx]
cmp dl, 0x2a
jne 0x50a324
lea eax, [ebx + 1]
mov dword [ebp - 0x90], eax
mov al, byte [eax]
cmp al, 0x3a
je 0x50a0f5
movzx ecx, al
mov eax, dword [edi + 0xc]
test byte [ecx + eax], 2
je 0x50a324
mov eax, dword [ebp - 0x64]
xor esi, esi
mov edx, dword [ebp - 0x90]
mov edi, 0x5b8e38
mov ebx, edx
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x5c], ebx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xa8], esi
movzx eax, byte [ebx]
mov dword [ebp - 0x78], esi
test byte [eax + ecx], 2
je 0x50a13d
nop dword [eax]
inc ebx
mov dword [ebp - 0x5c], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 2
jne 0x50a130
mov eax, ebx
sub eax, edx
cmp byte [ebx], 0x3a
mov dword [ebp - 0x88], eax
jne 0x50a190
inc ebx
mov dword [ebp - 0x5c], ebx
mov esi, ebx
mov dword [ebp - 0xa8], ebx
mov al, byte [ebx]
test al, al
je 0x50a16e
nop
cmp al, 0x29
je 0x50a16e
inc ebx
mov dword [ebp - 0x5c], ebx
mov al, byte [ebx]
test al, al
jne 0x50a160
mov edx, ebx
sub edx, esi
mov dword [ebp - 0x98], edx
cmp edx, 0xff
ja 0x50bb48
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0x90]
cmp byte [ebx], 0x29
jne 0x50bb78
xor ebx, ebx
mov esi, 0x5b8e68
mov dword [ebp - 0x60], ebx
cmp eax, dword [esi]
jne 0x50a1b6
push eax
push edi
push edx
call fcn.005668d0
add esp, 0xc
test eax, eax
je 0x50a1da
inc edi
inc ebx
add edi, dword [esi]
add esi, 0xc
mov dword [ebp - 0x60], ebx
cmp esi, str._b__w_
jge 0x50a313
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0x90]
jmp 0x50a1a3
lea eax, [ebx + ebx*2]
mov ecx, dword [eax*4 + 0x5b8e6c]
cmp ecx, 0x9e
jne 0x50a26c
cmp dword [ebp - 0x98], 0
jne 0x50bb56
mov edi, dword [ebp - 0x64]
mov ecx, dword [edi + 0x24]
mov dword [edi + 0x6c], 1
test ecx, ecx
je 0x50a23d
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x50a21a
add dword [eax], 3
jmp 0x50a237
mov edx, dword [ebp - 0x58]
mov byte [edx], 0xa0
movzx eax, byte [ecx + 5]
mov byte [edx + 1], al
movzx eax, byte [ecx + 4]
mov byte [edx + 2], al
add edx, 3
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x58], edx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x50a211
cmp dword [edi + 0x5c], 0
mov ecx, 0xffffffff
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x94]
setg bl
add bl, 0x9e
mov byte [edx], bl
inc edx
cmp eax, 0xfffffffe
mov dword [ebp - 0x58], edx
cmove eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x50a2e5
mov edx, dword [ebp - 0x98]
test edx, edx
jne 0x50a28b
test ecx, ecx
js 0x50bb67
mov edx, dword [ebp - 0x58]
mov bl, cl
mov byte [edx], bl
inc edx
mov dword [ebp - 0x58], edx
jmp 0x50a2e2
cmp dword [eax*4 + 0x5b8e70], 0
jl 0x50bb56
mov ecx, dword [ebp - 0x58]
mov bl, byte [eax*4 + 0x5b8e70]
mov eax, dword [ebp - 0x70]
mov byte [ecx], bl
test eax, eax
je 0x50a2b7
add dword [eax], edx
mov byte [ecx + 1], 0
add ecx, 2
jmp 0x50a2d9
push edx
push dword [ebp - 0xa8]
mov byte [ecx + 1], dl
add ecx, 2
push ecx
mov dword [ebp - 0x58], ecx
call fcn.0054e520
mov ecx, dword [ebp - 0x58]
add esp, 0xc
add ecx, dword [ebp - 0x98]
mov byte [ecx], 0
inc ecx
mov dword [ebp - 0x58], ecx
mov edx, ecx
mov edi, dword [ebp - 0x64]
movzx eax, bl
add eax, 0xffffff6a
cmp eax, 5
ja case.default.0x50a2f2
jmp dword [eax*4 + 0x50bf7c]
or dword [edi + 0x64], 0x1000
jmp case.default.0x50a2f2
mov dword [edi + 0x70], 1
cmp dword [ebp - 0x60], 9
jl 0x50ba81
mov eax, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x5c]
mov dword [eax], 0x3c
jmp 0x50bdee
mov esi, dword [edi + 0x20]
sub esi, dword [edi + 0x10]
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x60], 0x85
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0x98], 0
cmp dl, 0x3f
jne 0x50abdc
inc ebx
mov dword [ebp - 0x5c], ebx
mov dl, byte [ebx]
movzx eax, dl
add eax, 0xffffffdf
cmp eax, 0x5b
ja case.0x50a379.34
movzx eax, byte [eax + 0x50bfcc]
jmp dword [eax*4 + 0x50bf94]
mov dword [ebp - 0x98], 1
mov dword [edi + 0x7c], 1
mov ecx, 0x83
inc ebx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], ebx
jmp 0x50a6fa
cmp byte [ebx + 1], 0x3f
mov ecx, 0x87
mov edx, ebx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0xd8], edx
jne 0x50a3fa
cmp byte [ebx + 2], 0x43
jne 0x50a3fa
mov al, byte [ebx + 3]
mov ecx, 3
cmp al, 0x30
jb 0x50a3dd
nop word [eax + eax]
cmp al, 0x39
ja 0x50a3dd
mov al, byte [ecx + ebx + 1]
inc ecx
cmp al, 0x30
jae 0x50a3d0
cmp byte [ecx + ebx], 0x29
jne 0x50a3ee
lea edx, [ebx + 1]
add edx, ecx
mov dword [ebp - 0xd8], edx
cmp byte [edx], 0x28
jne 0x50bb86
mov ecx, dword [ebp - 0x60]
cmp byte [edx + 1], 0x3f
jne 0x50a429
mov al, byte [edx + 2]
cmp al, 0x3d
je 0x50a41a
cmp al, 0x21
je 0x50a41a
cmp al, 0x3c
jne 0x50a429
mov al, byte [edx + 3]
cmp al, 0x3d
je 0x50a41a
cmp al, 0x21
jne 0x50a429
mov dword [edi + 0x80], 1
jmp 0x50a6fa
mov eax, dword [ebp - 0x58]
or esi, 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x6c], 3
or edi, esi
mov dword [ebp - 0x74], ecx
xor edx, edx
mov byte [eax + 3], 0x8d
mov ebx, dword [ebp - 0x5c]
inc ebx
mov dword [ebp - 0x5c], ebx
mov al, byte [ebx]
cmp al, 0x52
jne 0x50a470
cmp byte [ebx + 1], 0x26
jne 0x50a470
mov eax, dword [ebp - 0x58]
or ecx, esi
add ebx, 2
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x5c], ebx
mov byte [eax + 3], 0x8f
mov ebx, dword [ebp - 0x5c]
jmp 0x50a486
cmp al, 0x3c
jne 0x50a53e
mov dword [ebp - 0x88], 0x3e
inc ebx
mov dword [ebp - 0x5c], ebx
mov al, byte [ebx]
cmp al, 0x30
jb 0x50a494
cmp al, 0x39
jbe 0x50bbbc
mov ecx, dword [ebp - 0x64]
movzx eax, al
mov ecx, dword [ecx + 0xc]
test byte [eax + ecx], 0x10
je 0x50bb86
mov dword [ebp - 0x74], ebx
inc ebx
mov dword [ebp - 0x5c], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
je 0x50a4c4
inc ebx
mov dword [ebp - 0x5c], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
jne 0x50a4b7
mov eax, dword [ebp - 0x6c]
mov edi, ebx
sub edi, dword [ebp - 0x74]
mov ecx, 5
cmp dword [ebp - 0x70], edx
cmovne eax, ecx
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x6c], eax
test ecx, ecx
jle 0x50a4f2
mov al, byte [ebx]
inc ebx
mov dword [ebp - 0x5c], ebx
cmp al, cl
jne 0x50bbe9
mov ecx, dword [ebp - 0x74]
mov al, byte [ebx]
inc ebx
mov dword [ebp - 0x5c], ebx
cmp al, 0x29
jne 0x50bbe9
cmp dword [ebp - 0x70], 0
jne 0x50a6f4
test esi, esi
js 0x50a5f8
test edx, edx
jle 0x50bbca
mov edi, dword [ebp - 0x64]
test esi, esi
je 0x50a5c2
cmp esi, 0x2d
jne 0x50a5bf
mov eax, dword [edi + 0x40]
sub eax, edx
lea edx, [eax + 1]
jmp 0x50a5c2
cmp al, 0x27
jne 0x50a551
mov dword [ebp - 0x88], 0x27
jmp 0x50a482
mov dword [ebp - 0x88], ecx
cmp al, 0x2d
je 0x50a573
cmp al, 0x2b
je 0x50a573
cmp al, 0x30
jb 0x50a494
cmp al, 0x39
ja 0x50a486
xor esi, esi
jmp 0x50a582
movzx esi, al
inc ebx
mov dword [ebp - 0x5c], ebx
test esi, esi
js 0x50a486
mov al, byte [ebx]
cmp al, 0x30
jb 0x50a4f5
nop dword [eax]
cmp al, 0x39
ja 0x50a4f5
cmp edx, 0xccccccb
jg 0x50bb94
movzx eax, al
lea edx, [edx + edx*4]
inc ebx
lea edx, [edx - 0x18]
mov dword [ebp - 0x5c], ebx
lea edx, [eax + edx*2]
mov al, byte [ebx]
cmp al, 0x30
jae 0x50a590
jmp 0x50a4f5
add edx, dword [edi + 0x40]
test edx, edx
jle 0x50bbdb
cmp edx, dword [edi + 0x44]
jg 0x50bbdb
mov ecx, dword [ebp - 0x58]
mov eax, edx
sar eax, 8
mov byte [ecx + 4], al
mov byte [ecx + 5], dl
mov ebx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x60]
cmp edx, dword [edi + 0x4c]
jle 0x50a6fa
mov dword [edi + 0x4c], edx
jmp 0x50a6fa
mov eax, dword [ebp - 0x64]
xor esi, esi
mov edx, dword [eax + 0x2c]
mov dword [ebp - 0xc4], edx
cmp dword [eax + 0x30], esi
jle 0x50a64b
mov ebx, edx
nop dword [eax]
push edi
lea eax, [ebx + 2]
push eax
push ecx
call fcn.005668d0
add esp, 0xc
test eax, eax
jne 0x50a628
cmp byte [ebx + edi + 2], al
je 0x50a63f
mov eax, dword [ebp - 0x64]
inc esi
mov ecx, dword [ebp - 0x74]
add ebx, dword [eax + 0x34]
mov dword [ebp - 0xc4], ebx
cmp esi, dword [eax + 0x30]
jl 0x50a610
jmp 0x50a642
mov eax, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0xc4]
mov ecx, dword [eax + 0x30]
cmp esi, ecx
jge 0x50a755
mov eax, dword [ebp - 0xc4]
mov ebx, 1
movzx edx, byte [edx]
shl edx, 8
mov dword [ebp - 0xc0], esi
inc esi
movzx eax, byte [eax + 1]
or edx, eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0xec], edx
cmp edx, dword [eax + 0x4c]
jle 0x50a685
mov dword [eax + 0x4c], edx
cmp esi, ecx
jge 0x50a745
mov ecx, dword [ebp - 0xc4]
add ecx, dword [eax + 0x34]
push edi
mov dword [ebp - 0xc4], ecx
lea eax, [ecx + 2]
push eax
push dword [ebp - 0x74]
call fcn.005668d0
add esp, 0xc
test eax, eax
jne 0x50a6c6
mov ecx, dword [ebp - 0xc4]
cmp byte [ecx + edi + 2], al
jne 0x50a6c6
mov eax, dword [ebp - 0x64]
inc esi
inc ebx
cmp esi, dword [eax + 0x30]
jl 0x50a693
cmp ebx, 1
jle 0x50a73f
mov edx, dword [ebp - 0x58]
mov ecx, dword [ebp - 0xc0]
mov eax, ecx
add dword [ebp - 0x6c], 2
sar eax, 8
mov byte [edx + 4], al
mov eax, ebx
sar eax, 8
inc byte [edx + 3]
mov byte [edx + 5], cl
mov byte [edx + 6], al
mov byte [edx + 7], bl
mov ebx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x6c]
inc dword [edi + 0x58]
cmp dword [edi + 0x58], 0xfa
jg 0x50bccd
lea eax, [ecx - 0x7d]
cmp eax, 3
ja 0x50aeea
cmp dword [edi + 0x80], 0
je 0x50aeea
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x78], 0
mov dword [edi + 0x80], 0
jmp 0x50aefc
mov edx, dword [ebp - 0xec]
mov ecx, dword [ebp - 0x58]
mov eax, edx
sar eax, 8
mov byte [ecx + 4], al
mov byte [ecx + 5], dl
jmp 0x50a6f1
cmp dword [ebp - 0x88], 0
jne 0x50bbdb
mov eax, dword [ebp - 0x74]
cmp byte [eax], 0x52
jne 0x50a7c6
xor ecx, ecx
lea edx, [ecx + 1]
cmp edi, edx
jle 0x50a7aa
mov al, byte [eax + edx]
cmp al, 0x30
jb 0x50bbdb
cmp al, 0x39
ja 0x50bbdb
cmp ecx, 0xccccccb
jg 0x50bbae
movzx eax, al
lea ecx, [ecx + ecx*4]
lea ecx, [ecx - 0x18]
inc edx
lea ecx, [eax + ecx*2]
mov eax, dword [ebp - 0x74]
cmp edx, edi
jl 0x50a773
test ecx, ecx
jne 0x50a7af
mov ecx, 0xffff
mov edx, dword [ebp - 0x58]
mov eax, ecx
sar eax, 8
mov byte [edx + 3], 0x8f
mov byte [edx + 4], al
mov byte [edx + 5], cl
jmp 0x50a6f1
cmp edi, 6
jne 0x50bbdb
push edi
push str.DEFINE
push eax
call fcn.005668d0
add esp, 0xc
test eax, eax
jne 0x50bbd8
mov eax, dword [ebp - 0x58]
lea edx, [edi - 5]
mov ecx, dword [ebp - 0x60]
mov edi, dword [ebp - 0x64]
mov byte [eax + 3], 0x91
mov ebx, dword [ebp - 0x5c]
jmp 0x50a6fd
inc dword [edi + 0x5c]
mov ecx, 0x7d
inc ebx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], ebx
jmp 0x50a6fa
inc ebx
mov dword [ebp - 0x5c], ebx
cmp byte [ebx], 0x29
jne 0x50a861
mov al, byte [ebx + 1]
cmp al, 0x2a
je 0x50a861
cmp al, 0x2b
je 0x50a861
cmp al, 0x3f
je 0x50a861
cmp al, 0x7b
jne 0x50a83e
lea eax, [ebx + 2]
push eax
call fcn.0050da40
add esp, 4
test eax, eax
jne 0x50a861
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x78], 0
mov byte [edx], 0x9d
inc edx
mov ebx, dword [ebp - 0x5c]
inc ebx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
inc dword [edi + 0x5c]
mov ecx, 0x7e
mov dword [ebp - 0x60], ecx
jmp 0x50a6fa
mov cl, byte [ebx + 1]
mov al, cl
cmp al, 0x21
je 0x50a9a6
cmp al, 0x3d
je 0x50a990
mov eax, dword [edi + 0xc]
movzx ecx, cl
test byte [ecx + eax], 0x10
je 0x50bbf8
cmp dl, 0x3c
mov eax, 0x27
mov ecx, 0x3e
cmove eax, ecx
inc ebx
mov dword [ebp - 0xc0], eax
mov esi, ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x88], esi
mov al, byte [ebx]
cmp al, 0x30
jb 0x50a8c6
cmp al, 0x39
jbe 0x50bbbc
mov ecx, dword [edi + 0xc]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x50a8df
inc ebx
mov dword [ebp - 0x5c], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
jne 0x50a8d2
mov edx, ebx
sub edx, esi
cmp dword [ebp - 0x70], 0
mov dword [ebp - 0xa8], edx
je 0x50ab70
mov eax, dword [edi + 0x40]
inc eax
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0xc0]
cmp byte [ebx], al
jne 0x50bc72
mov ecx, dword [edi + 0x30]
cmp ecx, 0x7530
jge 0x50bc64
lea eax, [edx + 3]
cmp eax, dword [edi + 0x34]
jle 0x50a92e
mov dword [edi + 0x34], eax
cmp edx, 0x20
jg 0x50bc23
mov esi, dword [edi + 0x28]
xor edi, edi
test ecx, ecx
jle 0x50aaca
nop dword [eax + eax]
cmp edx, dword [esi + 4]
jne 0x50aaa2
push edx
push dword [esi]
push dword [ebp - 0x88]
call fcn.005668d0
add esp, 0xc
test eax, eax
jne 0x50aaa2
mov eax, dword [ebp - 0x90]
cmp dword [esi + 8], eax
je 0x50aac7
test dword [ebp - 0x8c], 0x80000
je 0x50bc31
mov eax, dword [ebp - 0x64]
mov dword [eax + 0x78], 1
jmp 0x50aab4
inc dword [edi + 0x5c]
mov ecx, 0x7f
add ebx, 2
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], ebx
jmp 0x50a6fa
inc dword [edi + 0x5c]
mov ecx, 0x80
add ebx, 2
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], ebx
jmp 0x50a6fa
mov ecx, 0x81
inc ebx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], ebx
jmp 0x50a6fa
mov edx, dword [ebp - 0x58]
xor ecx, ecx
mov eax, edx
mov dword [ebp - 0xfc], 1
mov dword [ebp - 0xdc], eax
mov byte [edx], 0x76
mov ebx, dword [ebp - 0x5c]
inc ebx
mov dword [ebp - 0x5c], ebx
mov al, byte [ebx]
cmp al, 0x30
jb 0x50aa0e
cmp al, 0x39
ja 0x50aa0e
movzx eax, al
lea ecx, [ecx + ecx*4]
inc ebx
lea ecx, [ecx - 0x18]
mov dword [ebp - 0x5c], ebx
lea ecx, [eax + ecx*2]
mov al, byte [ebx]
cmp al, 0x30
jae 0x50a9f4
cmp byte [ebx], 0x29
jne 0x50bc15
cmp ecx, 0xff
jg 0x50bc07
mov esi, dword [ebp - 0x70]
mov byte [edx + 1], cl
mov eax, dword [ebp - 0x5c]
sub eax, dword [edi + 0x18]
inc eax
mov dword [ebp - 0x78], 0
sar eax, 8
mov byte [edx + 2], al
mov al, byte [ebp - 0x5c]
sub al, byte [edi + 0x18]
inc al
mov word [edx + 4], 0
mov byte [edx + 3], al
add edx, 6
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x7c]
inc ebx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
inc ebx
mov dword [ebp - 0x5c], ebx
mov dl, byte [ebx]
cmp dl, 0x3d
je 0x50aa8a
cmp dl, 0x3e
je 0x50aa8a
cmp dl, 0x3c
je case.0x50a379.39
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x29
jmp 0x50bdee
xor ecx, ecx
cmp dl, 0x3e
mov edx, 0x29
sete cl
mov dword [ebp - 0x88], ecx
jmp 0x50b21b
mov eax, dword [ebp - 0x90]
cmp dword [esi + 8], eax
je 0x50bc42
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0xa8]
inc edi
add esi, 0xc
cmp edi, dword [eax + 0x30]
jl 0x50a940
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x30]
cmp edi, eax
mov edi, dword [ebp - 0x64]
jl 0x50ab70
mov ecx, dword [edi + 0x38]
cmp eax, ecx
jl 0x50ab32
lea edi, [ecx + ecx]
lea eax, [edi + edi*2]
shl eax, 2
push eax
call dword [0x609358]
mov esi, eax
add esp, 4
test esi, esi
je 0x50bc53
mov ebx, dword [ebp - 0x64]
mov ecx, dword [ebx + 0x38]
lea ecx, [ecx + ecx*2]
shl ecx, 2
push ecx
push dword [ebx + 0x28]
push esi
call fcn.0054e520
add esp, 0xc
cmp dword [ebx + 0x38], 0x14
jle 0x50ab2a
push dword [ebx + 0x28]
call dword [0x60935c]
add esp, 4
mov dword [ebx + 0x38], edi
mov edi, ebx
mov dword [ebx + 0x28], esi
mov eax, dword [edi + 0x30]
mov edx, dword [ebp - 0x88]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x28]
mov dword [eax + ecx*4], edx
mov eax, dword [edi + 0x30]
mov edx, dword [ebp - 0xa8]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x28]
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [edi + 0x30]
mov edx, dword [ebp - 0x90]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x28]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x30]
mov ebx, dword [ebp - 0x5c]
inc ebx
mov dword [ebp - 0x5c], ebx
inc dword [edi + 0x40]
mov edx, 2
mov ecx, dword [ebp - 0x58]
mov eax, dword [edi + 0x40]
shr eax, 8
mov byte [ecx + 3], al
mov al, byte [edi + 0x40]
mov byte [ecx + 4], al
mov ebx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x60]
jmp 0x50a6fd
mov edx, 0x29
mov dword [ebp - 0x88], 1
jmp 0x50b21b
inc ebx
xor edx, edx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x60], edx
cmp byte [ebx], 0x29
je 0x50b443
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x1d
jmp 0x50bdee
mov dword [ebp - 0x98], 0x29
jmp 0x50ad33
test ecx, 0x1000
je 0x50ab74
mov ecx, 0x83
mov dword [ebp - 0x60], ecx
jmp 0x50a6fa
mov esi, dword [ebp - 0x68]
lea eax, [ebp - 0x10c]
push 0
mov dword [ebp - 0xd8], ebx
mov ebx, dword [ebp - 0x8c]
push ebx
push dword [edi + 0x40]
push esi
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.00506760
add esp, 0x18
mov edx, eax
cmp dword [esi], 0
mov dword [ebp - 0x60], edx
jne 0x50bac1
test edx, edx
jne 0x50ac60
cmp dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x10c]
je 0x50ac53
cmp eax, 0x7f
jbe 0x50ac53
lea ecx, [ebp - 0xc]
push ecx
push eax
call fcn.00524690
add esp, 8
mov esi, eax
jmp 0x507e5b
mov byte [ebp - 0xc], al
mov esi, 1
jmp 0x507e5b
mov ecx, dword [ebp - 0x94]
cmp ecx, 0xfffffffe
jne 0x50ac7f
lea eax, [edx - 6]
cmp eax, 0x10
mov eax, 0xffffffff
cmovbe ecx, eax
mov dword [ebp - 0x94], ecx
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xb0], eax
cmp edx, 0x1b
jne 0x50b1d2
mov ebx, dword [ebp - 0x5c]
mov ecx, 0x27
mov eax, dword [edi + 0x20]
inc ebx
sub eax, dword [edi + 0x10]
lea edx, [ebx + 1]
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0xa4], eax
mov eax, 0x3e
cmp byte [ebx], 0x3c
cmove ecx, eax
movzx eax, byte [edx]
mov dword [ebp - 0x98], ecx
cmp eax, 0x2b
je 0x50ad0a
cmp eax, 0x2d
je 0x50ad0a
cmp eax, 0x30
jb 0x50acf5
cmp eax, 0x39
jbe 0x50ad0a
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x88], 1
jmp 0x50b21b
mov al, byte [ebx + 2]
lea ecx, [ebx + 2]
cmp al, 0x30
jb 0x50ad20
cmp al, 0x39
ja 0x50ad20
mov al, byte [ecx + 1]
inc ecx
cmp al, 0x30
jae 0x50ad14
mov eax, dword [ebp - 0x98]
cmp byte [ecx], al
jne 0x50bd13
mov ebx, edx
mov dword [ebp - 0x5c], ebx
mov dl, byte [ebx]
movzx esi, dl
cmp esi, 0x2b
jne 0x50adc2
inc ebx
mov dword [ebp - 0x5c], ebx
mov al, byte [ebx]
cmp al, 0x30
jb 0x50bc80
cmp al, 0x39
ja 0x50bc80
mov al, byte [ebx]
xor edx, edx
mov dword [ebp - 0x60], edx
cmp al, 0x30
jb 0x50ad8b
cmp al, 0x39
ja 0x50ad8b
cmp edx, 0xccccccb
jg 0x50bcdb
movzx eax, al
lea edx, [edx + edx*4]
inc ebx
lea edx, [edx - 0x18]
mov dword [ebp - 0x5c], ebx
lea edx, [eax + edx*2]
mov al, byte [ebx]
mov dword [ebp - 0x60], edx
cmp al, 0x30
jae 0x50ad62
mov eax, dword [ebp - 0x98]
cmp byte [ebx], al
jne 0x50abbf
cmp esi, 0x2d
jne 0x50b1b6
test edx, edx
je 0x50bd05
mov eax, dword [edi + 0x40]
sub eax, edx
lea edx, [eax + 1]
mov dword [ebp - 0x60], edx
test edx, edx
jle 0x50bbdb
jmp 0x50b443
cmp esi, 0x2d
jne 0x50ad57
mov al, byte [ebx + 1]
cmp al, 0x30
jb case.0x50a379.34
cmp al, 0x39
ja case.0x50a379.34
inc ebx
mov dword [ebp - 0x5c], ebx
jmp 0x50ad57
xor eax, eax
lea ecx, [ebp - 0x90]
xor esi, esi
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x90], esi
cmp dl, 0x29
je 0x50ae6f
nop word [eax + eax]
cmp dl, 0x3a
je 0x50ae63
movzx eax, dl
inc ebx
sub eax, 0x2d
mov dword [ebp - 0x5c], ebx
cmp eax, 0x4b
ja case.0x50ae1f.46
movzx eax, byte [eax + 0x50c04c]
jmp dword [eax*4 + 0x50c028]
lea ecx, [ebp - 0x98]
jmp 0x50ae5c
or dword [ecx], 0x80000
or dword [edi + 0x64], 0x400
jmp 0x50ae5c
or dword [ecx], 1
jmp 0x50ae5c
or dword [ecx], 2
jmp 0x50ae5c
or dword [ecx], 4
jmp 0x50ae5c
or dword [ecx], 8
jmp 0x50ae5c
or dword [ecx], 0x200
jmp 0x50ae5c
or dword [ecx], 0x40
mov dl, byte [ebx]
cmp dl, 0x29
jne 0x50ae00
mov esi, dword [ebp - 0x90]
mov eax, dword [ebp - 0x98]
or esi, dword [ebp - 0x8c]
not eax
and esi, eax
cmp byte [ebx], 0x29
mov dword [ebp - 0x84], esi
jne 0x50aecd
mov edx, dword [ebp - 0x58]
mov eax, esi
shr eax, 9
and eax, 1
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x118], eax
xor eax, 1
mov dword [ebp - 0x11c], eax
mov eax, esi
and eax, 1
mov dword [ebp - 0x78], 0
mov dword [ebp - 0xf4], eax
inc ebx
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x5c], ebx
mov dword [eax], esi
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
jmp 0x507c90
inc ebx
mov dword [ebp - 0x98], 0
mov ecx, 0x83
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x60], ecx
xor edx, edx
jmp 0x50a6fd
mov ebx, dword [edi + 0x20]
sub ebx, dword [edi + 0x10]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0xa4], ebx
mov ebx, dword [ebp - 0x64]
mov byte [eax], cl
mov edi, dword [edi + 0x68]
mov dword [ebp - 0xac], eax
mov esi, dword [ebx + 0x40]
mov dword [ebp - 0xf0], 0
cmp ecx, 0x7f
je 0x50af28
cmp ecx, 0x80
je 0x50af28
xor ecx, ecx
jmp 0x50af2d
mov ecx, 1
cmp dword [ebp - 0x70], 0
lea eax, [ebp - 0xf0]
mov dword [ebp - 0xc0], 0
cmove eax, dword [ebp - 0xc0]
push eax
push ebx
push dword [ebp - 0x124]
mov ebx, dword [ebp - 0x60]
lea eax, [ebp - 0xf8]
push eax
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x120]
push eax
xor eax, eax
cmp ebx, 0x87
sete al
add eax, dword [ebp + 0x2c]
push eax
push edx
push dword [ebp - 0x98]
lea eax, [ebp - 0x5c]
push ecx
push dword [ebp - 0x68]
push eax
lea eax, [ebp - 0xac]
push eax
push dword [ebp - 0x84]
call fcn.0050c0a0
add esp, 0x3c
test eax, eax
je 0x50bac1
mov eax, dword [ebp - 0x64]
dec dword [eax + 0x58]
cmp ebx, 0x81
jne 0x50b038
cmp dword [eax + 0x40], esi
ja 0x50afc7
mov eax, dword [ebp - 0x58]
mov byte [eax], 0x82
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x5c]
cmp byte [ebx], 0x29
jne 0x50bcbf
mov esi, dword [ebp - 0x70]
test esi, esi
je 0x50b0be
mov edx, dword [esi]
mov esi, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xe8]
sub ecx, edx
lea eax, [esi - 6]
cmp ecx, eax
jl 0x50ba93
mov edi, dword [ebp - 0x64]
lea eax, [esi - 6]
mov esi, dword [ebp - 0x70]
add eax, edx
mov edx, dword [ebp - 0x58]
mov dword [esi], eax
mov eax, dword [ebp - 0x7c]
mov dword [edx + 1], 0x780300
mov byte [edx + 5], 3
add edx, 6
mov ebx, dword [ebp - 0x5c]
inc ebx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
cmp ebx, 0x7d
jl 0x50b048
cmp ebx, 0x80
jg 0x50b048
dec dword [eax + 0x5c]
cmp ebx, 0x87
jne 0x50afc7
cmp dword [ebp - 0x70], 0
jne 0x50afc7
mov ebx, dword [ebp - 0x58]
xor esi, esi
mov edx, ebx
movzx ecx, byte [edx + 1]
inc esi
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x78
jne 0x50b065
cmp byte [ebx + 3], 0x91
jne 0x50b093
cmp esi, 1
jg 0x50bc9d
mov edx, 0x91
jmp 0x50afca
cmp esi, 2
jg 0x50bcae
cmp esi, 1
jne 0x50afc7
mov edx, dword [ebp - 0x60]
or eax, 0xffffffff
or ecx, eax
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0x100], ecx
jmp 0x50afd6
mov esi, dword [ebp - 0xac]
mov dword [ebp - 0x58], esi
cmp edx, 0x91
je 0x50b194
mov esi, dword [ebp - 0xb8]
mov dword [ebp - 0xc8], esi
mov esi, dword [ebp - 0xb4]
mov dword [ebp - 0xb0], esi
mov esi, dword [ebp - 0xd0]
mov dword [ebp - 0xe0], esi
mov esi, dword [ebp - 0x94]
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0x104], 0
cmp edx, 0x81
jl 0x50b1a9
cmp esi, 0xfffffffe
jne 0x50b160
test ecx, ecx
js 0x50b14a
mov edx, dword [ebp - 0x120]
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x104], 1
mov dword [ebp - 0xcc], 0xffffffff
jmp 0x50b17e
mov dword [ebp - 0x94], 0xffffffff
mov dword [ebp - 0xcc], 0xffffffff
jmp 0x50b17e
test ecx, ecx
js 0x50b17e
test eax, eax
jns 0x50b182
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x110], eax
mov eax, ecx
or eax, edi
mov dword [ebp - 0xf8], eax
test eax, eax
js 0x50b194
mov ecx, dword [ebp - 0x110]
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb4], eax
mov edi, dword [ebp - 0x64]
inc ebx
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
cmp edx, 0x7d
jne 0x50b194
test eax, eax
js 0x50b194
test ecx, ecx
jmp 0x50b180
cmp esi, 0x2b
jne 0x50b443
test edx, edx
je 0x50bd05
add edx, dword [edi + 0x40]
mov dword [ebp - 0x60], edx
jmp 0x50b443
cmp edx, 0x1c
jne 0x50b66b
mov ebx, dword [ebp - 0x5c]
mov al, byte [ebx + 1]
cmp al, 0x3c
je 0x50b1f1
cmp al, 0x27
je 0x50b1f1
cmp al, 0x7b
jne 0x50bd1e
inc ebx
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x5c], ebx
mov al, byte [ebx]
cmp al, 0x3c
jne 0x50b20c
mov edx, 0x3e
jmp 0x50b21b
cmp al, 0x27
mov edx, 0x7d
mov eax, 0x27
cmove edx, eax
inc ebx
mov dword [ebp - 0x5c], ebx
mov esi, ebx
mov dword [ebp - 0xc0], esi
mov al, byte [ebx]
cmp al, 0x30
jb 0x50b235
cmp al, 0x39
jbe 0x50bbbc
mov ecx, dword [edi + 0xc]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x50b24e
inc ebx
mov dword [ebp - 0x5c], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
jne 0x50b241
mov edi, ebx
sub edi, esi
cmp dword [ebp - 0x70], 0
je 0x50b33a
xor ecx, ecx
mov dword [ebp - 0x60], ecx
test edi, edi
je 0x50bd29
cmp byte [ebx], dl
jne 0x50bc72
cmp edi, 0x20
jg 0x50bc23
mov edx, dword [ebp - 0x64]
cmp dword [ebp - 0x88], ecx
jne 0x50b288
inc dword [edx + 0x54]
mov ecx, dword [ebp - 0x70]
add dword [ecx], 0xe
cmp dword [edx + 0x7c], 0
je 0x50b297
add dword [ecx], 0xc
cmp dword [edx + 0x30], 0
mov esi, dword [edx + 0x28]
mov dword [ebp - 0xa4], 0
jle 0x50b3bd
mov ebx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x64]
nop dword [eax]
cmp edi, dword [esi + 4]
jne 0x50b335
push edi
push dword [esi]
push ebx
call fcn.005668d0
add esp, 0xc
test eax, eax
jne 0x50b330
mov edx, dword [esi + 8]
mov dword [ebp - 0x60], edx
cmp dword [ebp - 0x88], eax
jne 0x50b440
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x50b303
movzx eax, word [ecx + 4]
cmp eax, edx
je 0x50b325
mov ecx, dword [ecx]
test ecx, ecx
jne 0x50b2f5
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0xa4]
inc eax
add esi, 0xc
mov dword [ebp - 0xa4], eax
cmp eax, dword [ecx + 0x30]
jl 0x50b2c0
mov ecx, dword [ebp - 0x70]
mov esi, eax
jmp 0x50b3c2
mov eax, 1
mov word [ecx + 6], ax
jmp 0x50b303
mov edx, dword [ebp - 0x60]
jmp 0x50b303
mov edx, dword [ebp - 0x60]
jmp 0x50b30c
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0xa4], 0
cmp dword [eax + 0x30], 0
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 0xc4], ecx
jle 0x50b397
mov ebx, ecx
push edi
lea eax, [ebx + 2]
push eax
push esi
call fcn.005668d0
add esp, 0xc
test eax, eax
jne 0x50b370
cmp byte [ebx + edi + 2], al
je 0x50b388
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0xa4]
inc eax
mov dword [ebp - 0xa4], eax
add ebx, dword [ecx + 0x34]
cmp eax, dword [ecx + 0x30]
jl 0x50b358
mov dword [ebp - 0xc4], ebx
mov ebx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0xc4]
mov edi, dword [ebp - 0x64]
mov esi, dword [ebp - 0xa4]
cmp esi, dword [edi + 0x30]
jge 0x50bbdb
movzx edx, byte [ecx]
movzx eax, byte [ecx + 1]
mov ecx, dword [ebp - 0x70]
shl edx, 8
or edx, eax
mov dword [ebp - 0x60], edx
jmp 0x50b3c5
mov edx, dword [ebp - 0x60]
xor esi, esi
mov edi, dword [ebp - 0x64]
cmp dword [ebp - 0x88], 0
jne 0x50b443
test ecx, ecx
jne 0x50b67f
cmp dword [edi + 0x78], ecx
je 0x50b67f
mov eax, dword [ebp - 0xc4]
lea ebx, [ecx + 1]
mov ecx, dword [edi + 0x34]
mov edi, dword [edi + 0x30]
add ecx, eax
mov dword [ebp - 0xec], esi
inc esi
mov dword [ebp - 0x90], ecx
cmp esi, edi
jge 0x50b67c
add eax, 2
mov dword [ebp - 0xc0], eax
add ecx, 2
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x50b55e
test dl, dl
je 0x50b439
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x50b55e
add eax, 2
add ecx, 2
test dl, dl
jne 0x50b415
xor eax, eax
jmp 0x50b563
mov edi, dword [ebp - 0x64]
mov esi, dword [edi + 0x20]
sub esi, dword [edi + 0x10]
mov ecx, dword [ebp - 0x58]
mov ebx, dword [edi + 0x14]
mov dword [ebp - 0xa4], esi
mov esi, dword [ebp - 0x70]
mov dword [ebp - 0x78], ecx
test esi, esi
jne 0x50b512
mov esi, dword [ebp - 0x9c]
mov byte [ecx], 0
test edx, edx
je 0x50b482
push edx
push esi
push dword [edi + 0x14]
call fcn.005059d0
mov edx, dword [ebp - 0x60]
add esp, 0xc
mov ebx, eax
test ebx, ebx
jne 0x50b4dc
cmp edx, dword [edi + 0x44]
jg 0x50bd37
mov eax, dword [edi + 0x10]
mov ebx, dword [edi + 0x14]
add eax, 0xffffff9c
add eax, dword [edi + 0x3c]
add ebx, edx
cmp dword [edi + 0x20], eax
jb 0x50b4b8
push edi
call fcn.0050c990
mov ecx, dword [ebp - 0x68]
add esp, 4
mov dword [ecx], eax
test eax, eax
jne 0x50bac1
mov edx, dword [ebp - 0x58]
mov ecx, edx
sub ecx, dword [edi + 0x14]
mov eax, dword [edi + 0x20]
inc ecx
sar ecx, 8
mov byte [eax], cl
mov cl, dl
sub cl, byte [edi + 0x14]
mov eax, dword [edi + 0x20]
inc cl
mov byte [eax + 1], cl
add dword [edi + 0x20], 2
jmp 0x50b50c
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
jne 0x50b50c
cmp dword [ebp + 0x2c], ecx
jg 0x50b50c
push edi
push esi
push dword [ebp - 0x124]
push dword [ebp - 0x58]
push ebx
call fcn.0050c4d0
add esp, 0x14
test eax, eax
jne 0x50bd48
mov esi, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x58]
mov byte [ecx], 0x75
mov eax, ebx
sub eax, dword [edi + 0x14]
sar eax, 8
mov byte [ecx + 1], al
sub bl, byte [edi + 0x14]
mov byte [ecx + 2], bl
add ecx, 3
cmp dword [ebp - 0x94], 0xfffffffe
mov edx, ecx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x104], 0
jne 0x50ba81
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x7c]
inc ebx
mov dword [ebp - 0x94], 0xffffffff
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
sbb eax, eax
or eax, 1
test eax, eax
jne 0x50b589
mov eax, dword [ebp - 0x64]
inc esi
mov ecx, dword [ebp - 0x90]
inc ebx
add ecx, dword [eax + 0x34]
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x90], ecx
cmp esi, edi
jl 0x50b412
mov edi, dword [ebp - 0x64]
cmp ebx, 1
jle 0x50b677
mov eax, dword [ebp - 0x94]
mov ecx, 0xffffffff
mov edx, dword [ebp - 0x58]
cmp eax, 0xfffffffe
mov esi, dword [ebp - 0x90]
cmove eax, ecx
mov dword [ebp - 0x78], edx
mov ecx, dword [ebp - 0xec]
mov dword [ebp - 0x94], eax
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
test byte [ebp - 0x8c], 1
mov dword [ebp - 0xa4], eax
setne al
add al, 0x73
mov byte [edx], al
mov eax, ecx
shr eax, 8
mov byte [edx + 1], al
mov eax, ebx
mov byte [edx + 2], cl
sar eax, 8
mov byte [edx + 4], bl
mov ebx, dword [ebp - 0xc4]
mov byte [edx + 3], al
add edx, 5
mov dword [ebp - 0x58], edx
cmp ebx, esi
jae 0x50ba81
movzx edx, byte [ebx]
movzx eax, byte [ebx + 1]
shl edx, 8
or edx, eax
mov eax, 1
cmp edx, 0x20
jge 0x50b61c
mov ecx, edx
shl eax, cl
or dword [edi + 0x50], eax
cmp edx, dword [edi + 0x4c]
jle 0x50b627
mov dword [edi + 0x4c], edx
mov ecx, dword [edi + 0x24]
test ecx, ecx
je 0x50b649
nop
movzx eax, word [ecx + 4]
cmp eax, edx
je 0x50b640
mov ecx, dword [ecx]
test ecx, ecx
jne 0x50b630
jmp 0x50b649
mov eax, 1
mov word [ecx + 6], ax
add ebx, dword [edi + 0x34]
cmp ebx, esi
jb 0x50b602
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0xc4], ebx
mov ebx, dword [ebp - 0x5c]
inc ebx
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
test edx, edx
jns 0x50b734
neg edx
jmp 0x50b68b
mov edx, dword [ebp - 0x60]
jmp 0x50b67f
mov edi, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x94]
mov ebx, dword [ebp - 0x8c]
cmp ecx, 0xfffffffe
mov eax, 0xffffffff
cmove ecx, eax
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
test bl, 1
mov dword [ebp - 0xa4], eax
setne al
mov dword [ebp - 0x94], ecx
mov ecx, dword [ebp - 0x58]
add al, 0x71
mov dword [ebp - 0x78], ecx
mov byte [ecx], al
mov eax, edx
sar eax, 8
mov byte [ecx + 1], al
mov byte [ecx + 2], dl
add ecx, 3
mov dword [ebp - 0x58], ecx
cmp edx, 0x20
jge 0x50b6db
mov ebx, 1
mov ecx, edx
mov eax, ebx
shl eax, cl
jmp 0x50b6e2
mov eax, 1
mov ebx, eax
or dword [edi + 0x50], eax
cmp edx, dword [edi + 0x4c]
jle 0x50b6ed
mov dword [edi + 0x4c], edx
mov ecx, dword [edi + 0x24]
test ecx, ecx
je 0x509119
movzx eax, word [ecx + 4]
cmp eax, edx
je 0x50b71b
mov ecx, dword [ecx]
test ecx, ecx
jne 0x50b6f8
mov ebx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
inc ebx
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
mov word [ecx + 6], bx
mov ebx, dword [ebp - 0x5c]
inc ebx
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
cmp edx, 0xf
je 0x50b7d2
cmp edx, 0x10
je 0x50b7d2
cmp edx, 5
je 0x50b755
cmp edx, 4
je 0x50b755
cmp edx, 1
jne 0x50b762
cmp dword [edi + 0x48], 0
jne 0x50b762
mov dword [edi + 0x48], 1
lea ebx, [edx - 0x1d]
cmp ebx, 5
ja 0x50b788
mov ebx, dword [ebx*4 + 0x6092d0]
mov eax, dword [ebp - 0x5c]
dec ebx
mov edx, dword [ebp - 0x58]
inc eax
mov esi, dword [ebp - 0x70]
inc ebx
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
mov ecx, dword [ebp - 0x58]
lea eax, [edx - 6]
xor esi, esi
cmp eax, 0x10
cmovbe esi, ecx
mov dword [ebp - 0x78], esi
mov esi, dword [edi + 0x20]
sub esi, dword [edi + 0x10]
cmp dword [ebp - 0x9c], 0
mov dword [ebp - 0xa4], esi
jne 0x50b7b8
cmp edx, 0xe
jne 0x50b7b8
mov edx, 0xd
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
mov byte [ecx], dl
inc ecx
mov ebx, dword [ebp - 0x5c]
mov edx, ecx
inc ebx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
push esi
lea eax, [ebp - 0x98]
mov dword [ebp - 0x90], 0
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x98], 0
push eax
lea eax, [ebp - 0x13c]
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0050d7a0
add esp, 0x14
test eax, eax
je 0x50bac1
mov esi, dword [edi + 0x20]
xor eax, eax
sub esi, dword [edi + 0x10]
cmp dword [ebp - 0x60], 0x10
mov edx, dword [ebp - 0x58]
sete al
mov dword [ebp - 0x78], edx
cmp eax, dword [ebp - 0x13c]
mov dword [ebp - 0xa4], esi
mov esi, dword [ebp - 0x70]
setne al
add al, 0xf
mov byte [edx], al
movzx eax, byte [ebp - 0x90]
mov byte [edx + 1], al
movzx eax, byte [ebp - 0x98]
mov byte [edx + 2], al
add edx, 3
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x7c]
inc ebx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
movzx ecx, byte [ebp - 0xb]
movzx eax, byte [ebp - 0xa]
and ecx, 0x3f
test dl, 0x10
jne 0x50b881
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x50b8e9
and eax, 0x3f
test dl, 8
jne 0x50b89c
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [ebp - 9]
jmp 0x50b8e9
test dl, 4
jne 0x50b8c0
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [ebp - 9]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [ebp - 8]
jmp 0x50b8e9
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [ebp - 9]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [ebp - 8]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [ebp - 7]
mov ecx, dword [ebp - 0x58]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
test eax, eax
jns 0x50b8fd
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5be150]
shl eax, 7
and edx, 0x8000007f
jns 0x50b917
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5c0350]
movzx eax, byte [eax*8 + 0x5bcad3]
test eax, eax
je 0x50b970
mov word [ecx], 0x910
mov byte [ecx + 2], al
add ecx, 3
cmp dword [ebp - 0x94], 0xfffffffe
mov edx, ecx
mov dword [ebp - 0x58], ecx
jne 0x50ba81
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x70]
inc ebx
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0xcc], 0xffffffff
mov dword [ebp - 0x94], 0xffffffff
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
test bl, 1
setne al
add al, 0x1d
mov byte [ecx], al
inc ecx
mov dword [ebp - 0x58], ecx
xor ecx, ecx
mov edx, dword [ebp - 0x58]
test esi, esi
je 0x50b996
mov al, byte [ebp + ecx - 0xc]
inc ecx
mov byte [edx], al
inc edx
cmp ecx, esi
jb 0x50b987
mov dword [ebp - 0x58], edx
mov al, byte [ebp - 0xc]
cmp al, 0xd
je 0x50b9a1
cmp al, 0xa
jne 0x50b9a8
or dword [edi + 0x64], 0x800
mov ecx, dword [ebp - 0x94]
cmp ecx, 0xfffffffe
jne 0x50ba30
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xc8], ecx
mov ecx, dword [ebp - 0xb4]
mov dword [ebp - 0xcc], 0xffffffff
mov dword [ebp - 0xb0], ecx
cmp esi, 1
je 0x50ba0d
cmp dword [ebp - 0xf4], 0
je 0x50ba0d
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x70]
inc ebx
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0xb4], 0xffffffff
mov dword [ebp - 0x94], 0xffffffff
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
movzx eax, al
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x94], eax
cmp esi, 1
je 0x50ba81
mov ecx, dword [edi + 0x68]
jmp 0x50ba71
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xcc], ecx
mov ecx, dword [ebp - 0xb4]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xb0], ecx
cmp esi, 1
je 0x50ba68
cmp dword [ebp - 0xf4], 0
jne 0x50ba81
mov ecx, dword [edi + 0x68]
or ecx, dword [ebp - 0xf4]
movzx eax, byte [edx - 1]
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xb8], eax
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x70]
inc ebx
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x5c], ebx
jmp 0x507c90
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x14
jmp 0x50bdee
add ecx, dword [edi + 0x10]
cmp edx, ecx
mov ecx, dword [ebp - 0x68]
sbb eax, eax
and eax, 0x23
add eax, 0x34
mov dword [ecx], eax
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x1e
mov ebx, dword [ebp - 0x5c]
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x1f
jmp 0x50bdee
mov dword [ecx], 7
jmp 0x50bdee
mov ebx, dword [ebp - 0x5c]
mov dword [ecx], 0x47
jmp 0x50bdee
mov dword [edi], 0x53
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x53
jmp 0x50bdee
mov dword [edi], 8
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 6
jmp 0x50bdee
cmp byte [ebx + 1], 0x3a
mov ecx, 0xd
mov eax, 0x1f
cmove eax, ecx
mov ecx, dword [ebp - 0x68]
mov dword [ecx], eax
jmp 0x50bdee
mov dword [edx], 9
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x4b
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x5c]
mov dword [eax], 0x3b
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x5c]
mov dword [eax], 0x42
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x3c
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x1c
jmp 0x50bdee
mov al, byte [ebx]
cmp al, 0x30
jb 0x50bbae
nop word [eax + eax]
cmp al, 0x39
ja 0x50bbae
inc ebx
mov dword [ebp - 0x5c], ebx
mov al, byte [ebx]
cmp al, 0x30
jae 0x50bba0
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x3d
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x54
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x23
jmp 0x50bdee
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x68]
mov dword [eax], 0xf
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
dec ebx
mov dword [eax], 0x1a
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
inc ebx
mov dword [eax], 0x18
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x26
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x27
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x30
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x5c]
mov dword [eax], 0x2b
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x5c]
mov dword [eax], 0x41
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x5c]
mov dword [eax], 0x15
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x31
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x2a
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x3f
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
dec ebx
mov dword [eax], 0xc
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x5c]
mov dword [eax], 0x36
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x5c]
mov dword [eax], 0x1b
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0xe
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x52
jmp 0x50bdee
mov al, byte [ebx]
cmp al, 0x30
jb 0x50bbae
cmp al, 0x39
ja 0x50bbae
inc ebx
mov dword [ebp - 0x5c], ebx
mov al, byte [ebx]
cmp al, 0x30
jae 0x50bce5
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x3d
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x3a
jmp 0x50bdee
mov dword [esi], 0x39
jmp 0x50bdee
mov dword [esi], 0x45
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x3e
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x5c]
mov dword [eax], 0xf
jmp 0x50bdee
mov eax, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x5c]
mov dword [eax], 0x28
jmp 0x50bdee
mov ecx, dword [ebp - 0x154]
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x70]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x94]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x148]
mov eax, dword [ebp - 0xb8]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0xb4]
mov dword [ecx], eax
mov eax, dword [ebp - 0x150]
mov dword [eax], edx
mov eax, dword [ebp - 0x128]
mov dword [eax], ebx
test esi, esi
je 0x50bdcf
mov ecx, dword [esi]
mov eax, edx
mov edi, dword [ebp - 0x108]
sub eax, edi
sub dword [ebp - 0xe8], ecx
cmp dword [ebp - 0xe8], eax
jl 0x50ba93
sub ecx, edi
add ecx, edx
mov dword [esi], ecx
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0052b33d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x68]
mov dword [eax], 0x34
mov eax, dword [ebp - 0x128]
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov dword [eax], ebx
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.0052b33d
mov esp, ebp
pop ebp
ret