Function at 0x671f9e50
Capabilities:
Authenticate hmac
Encode data using base64
Encrypt data using speck
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x150
mov eax, dword [0x67463180]
xor eax, esp
mov dword [esp + 0x14c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x174]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x184]
mov edx, dword [esp + 0x168]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x4c], eax
xor eax, eax
mov ebx, dword [esp + 0x164]
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0xb4], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0xe8], ebx
mov ebx, dword [ebx]
mov eax, ebx
shr eax, 0xb
and eax, 1
mov dword [esp + 0xec], edx
mov edx, dword [edx]
mov dword [esp + 0x54], eax
mov eax, ebx
shr eax, 9
and eax, 1
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc4], eax
xor eax, 1
mov esi, dword [esp + 0x16c]
xor ebp, ebp
mov dword [esp + 0xd0], eax
mov eax, ebx
mov edi, dword [esp + 0x170]
and eax, 1
mov dword [esp + 0x1c], edi
xor edi, edi
mov dword [esp + 0x20], esi
mov esi, dword [esi]
mov dword [esp + 0xa0], eax
xor eax, eax
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x48], ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xc0], edx
mov dword [esp + 0x24], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x70], edi
mov dword [esp + 0x90], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x74], 0xfffffffe
mov dword [esp + 0x84], 0xfffffffe
mov dword [esp + 0x6c], 0xfffffffe
mov dword [esp + 0x44], 0xfffffffe
mov dword [esp + 0xe0], 0xff
mov dword [esp + 0xd4], 0xdc00
mov dword [esp + 0xf8], 3
jmp 0x671f9ff8
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
movzx ebx, word [esi]
test ebx, ebx
jne 0x671fa012
test eax, eax
je 0x671fa012
mov esi, eax
xor eax, eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x34], eax
movzx ebx, word [esi]
cmp dword [esp + 0x4c], 0
mov ecx, dword [ecx + 0x3c]
je 0x671fa0f6
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*2]
add eax, 0xffffff38
cmp edi, eax
ja 0x671fde57
mov eax, dword [esp + 0xb8]
cmp edi, eax
cmovb edi, eax
mov ecx, edi
mov dword [esp + 0x14], edi
sub ecx, eax
mov eax, dword [esp + 0x4c]
sar ecx, 1
mov edx, dword [eax]
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jl 0x671fde48
lea eax, [edx + ecx]
mov ecx, dword [esp + 0x4c]
mov dword [ecx], eax
test ebp, ebp
je 0x671fa0c5
mov ecx, dword [esp + 0xc0]
cmp ebp, ecx
jbe 0x671fa0e1
mov eax, edi
sub eax, ebp
and eax, 0xfffffffe
push eax
push ebp
push ecx
call dword [0x672482fc]
sub ebp, dword [esp + 0xcc]
add esp, 0xc
mov esi, dword [esp + 0x10]
mov edx, edi
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
sar ebp, 1
neg ebp
lea edx, [edx + ebp*2]
mov ebp, dword [esp + 0xc0]
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], ebp
mov dword [esp + 0xb8], edx
jmp 0x671fa10d
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x14], edx
mov dword [esp + 0xb8], edx
jmp 0x671fa10d
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
mov dword [esp + 0xb8], edx
jmp 0x671fa10d
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x20], eax
ja 0x671fe1ff
test ebx, ebx
je 0x671fa1db
cmp ebx, 0x5c
jne 0x671fa13a
cmp word [esi + 2], 0x45
jne 0x671fa13a
mov eax, dword [esp + 0x34]
xor edi, edi
add esi, 2
mov dword [esp + 0x24], edi
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
test edi, edi
je 0x671fa1b3
mov eax, dword [esp + 0x98]
test eax, eax
je 0x671fa16c
cmp dword [esp + 0x4c], 0
jne 0x671fa161
sub esi, dword [ecx + 0x18]
sar esi, 1
sub si, word [eax + 4]
mov word [eax + 6], si
mov esi, dword [esp + 0x10]
mov dword [esp + 0x98], 0
test dword [esp + 0x48], 0x4000
je 0x671fa5b6
mov eax, 0x76
mov dword [esp + 0x98], edx
mov word [edx], ax
lea eax, [edx + 2]
mov edx, 0xff
mov word [eax], dx
lea edx, [eax + 6]
sub esi, dword [ecx + 0x18]
sar esi, 1
xor ecx, ecx
mov word [eax + 2], si
mov word [eax + 4], cx
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], edx
jmp 0x671fa5b6
cmp ebx, 0x5c
jne 0x671fa1db
cmp word [esi + 2], 0x51
jne 0x671fa1db
mov eax, dword [esp + 0x34]
add esi, 2
mov edi, 1
add esi, 2
mov dword [esp + 0x24], edi
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov edx, dword [esp + 0x48]
and edx, 8
mov dword [esp + 0x58], edx
je 0x671fa293
mov ebp, esi
cmp ebx, 0xff
ja 0x671fa218
mov eax, dword [ecx + 0xc]
lea esp, [esp]
test byte [eax + ebx], 1
je 0x671fa218
add esi, 2
mov dword [esp + 0x10], esi
movzx ebx, word [esi]
cmp ebx, 0xff
jbe 0x671fa200
cmp ebx, 0x23
jne 0x671fa283
add esi, 2
mov dword [esp + 0x10], esi
movzx edi, word [esi]
test di, di
je 0x671fa283
lea esp, [esp]
mov edx, dword [ecx + 0x84]
test edx, edx
je 0x671fa2e9
mov ecx, dword [ecx + 0x1c]
cmp esi, ecx
jae 0x671fa324
push dword [esp + 0x54]
mov eax, dword [esp + 0x1c]
add eax, 0x88
push eax
push ecx
push edx
push esi
call fcn.672264e0
mov esi, dword [esp + 0x24]
add esp, 0x14
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x671fa328
mov eax, dword [ecx + 0x88]
lea esi, [esi + eax*2]
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 0x24]
cmp esi, ebp
mov ebp, dword [esp + 0x28]
ja 0x671f9ff0
cmp ebx, 0x28
jne 0x671fa385
cmp word [esi + 2], 0x3f
jne 0x671fa3a9
cmp word [esi + 4], 0x23
jne 0x671fa3a9
add esi, 6
mov dword [esp + 0x10], esi
movzx eax, word [esi]
test ax, ax
je 0x671fa2da
cmp ax, 0x29
je 0x671fa363
add esi, 2
mov dword [esp + 0x10], esi
movzx eax, word [esi]
test ax, ax
jne 0x671fa2c1
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x12
jmp 0x671fe209
mov edx, dword [ecx + 0x88]
mov ecx, dword [ecx + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
mov ecx, dword [esp + 0x18]
ja 0x671fa328
cmp di, word [ecx + 0x8c]
jne 0x671fa328
cmp edx, 1
je 0x671fa272
mov ax, word [esi + 2]
cmp ax, word [ecx + 0x8e]
je 0x671fa272
jmp 0x671fa328
mov ecx, dword [esp + 0x18]
add esi, 2
cmp dword [esp + 0x54], 0
mov dword [esp + 0x10], esi
je 0x671fa352
mov ax, word [esi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x671fa352
add esi, 2
mov dword [esp + 0x10], esi
movzx edi, word [esi]
test di, di
jne 0x671fa230
jmp 0x671fa27f
cmp word [esi], 0
je 0x671fa2da
mov edx, dword [esp + 0x14]
add esi, 2
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
cmp ebx, 0x2a
je 0x671fa3f7
cmp ebx, 0x2b
je 0x671fa3f7
cmp ebx, 0x3f
je 0x671fa3f7
cmp ebx, 0x7b
jne 0x671fa3a9
lea eax, [esi + 2]
push eax
call fcn.671ffc80
add esp, 4
test eax, eax
jne 0x671fa3f7
mov ebp, dword [esp + 0x98]
xor ecx, ecx
mov eax, dword [esp + 0x34]
test ebp, ebp
je 0x671fa400
test eax, eax
jne 0x671fa400
mov edi, dword [esp + 0xb4]
mov eax, edi
dec edi
mov dword [esp + 0xb4], edi
test eax, eax
jg 0x671fa3fc
cmp dword [esp + 0x4c], ecx
jne 0x671fa3ee
mov eax, dword [esp + 0x18]
sub esi, dword [eax + 0x18]
sar esi, 1
sub si, word [ebp + 4]
mov word [ebp + 6], si
mov esi, dword [esp + 0x10]
mov dword [esp + 0x98], ecx
jmp 0x671fa3fc
mov ecx, 1
mov eax, dword [esp + 0x34]
test dword [esp + 0x48], 0x4000
je 0x671fa443
test ecx, ecx
jne 0x671fa443
mov edi, dword [esp + 0x18]
test eax, eax
jne 0x671fa447
mov eax, dword [esp + 0x14]
mov dword [esp + 0x98], eax
mov dword [eax], 0xff0076
lea ebp, [eax + 8]
sub esi, dword [edi + 0x18]
sar esi, 1
mov word [eax + 4], si
xor esi, esi
mov word [eax + 6], si
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], ebp
jmp 0x671fa44b
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
cmp ebx, 0x7c
ja case.0x671fa45b.1
movzx eax, byte [ebx + 0x671fe260]
jmp dword [eax*4 + 0x671fe22c]
xor ebp, ebp
test byte [esp + 0x48], 2
mov dword [esp + 0x28], ebp
je 0x671fa4b8
cmp dword [esp + 0x44], 0xfffffffe
jne 0x671fa489
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x84], 0xffffffff
mov edx, dword [esp + 0x14]
mov eax, 0x1c
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
mov word [edx], ax
add edx, 2
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
add esi, 2
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov edx, dword [esp + 0x14]
mov eax, 0x1b
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
mov word [edx], ax
add edx, 2
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
add esi, 2
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov edx, dword [esp + 0x14]
xor ebp, ebp
test byte [esp + 0x48], 2
mov eax, ebp
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
setne al
add eax, 0x19
mov dword [esp + 0x28], ebp
mov word [edx], ax
add edx, 2
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
add esi, 2
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov eax, dword [esp + 0x44]
mov ecx, 0xffffffff
mov edx, dword [esp + 0x14]
cmp eax, 0xfffffffe
mov edi, dword [esp + 0x24]
mov ebp, edx
cmove eax, ecx
mov dword [esp + 0x28], ebp
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x44], eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x48]
shr eax, 2
mov dword [esp + 0x90], ecx
and eax, 1
mov ecx, dword [esp + 0x18]
or eax, 0xc
mov ebx, dword [ecx + 0x20]
sub ebx, dword [ecx + 0x10]
mov word [edx], ax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
sar ebx, 1
add edx, 2
add esi, 2
mov dword [esp + 0x78], ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
test dword [edi + 0x60], 0x2000000
jne 0x671fde75
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x54], 0
mov edi, 1
mov word [esp + 0x120], bx
je 0x671fa605
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x671fa605
mov ax, word [esi + 2]
add esi, 2
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x671fa605
mov dword [esp + 0x10], esi
mov edi, 2
mov ax, word [esi]
mov word [esp + 0x122], ax
mov eax, dword [esp + 0x18]
mov ebp, edx
mov dword [esp + 0x28], ebp
mov ebx, dword [eax + 0x20]
sub ebx, dword [eax + 0x10]
sar ebx, 1
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x54]
test ebx, ebx
mov ebx, dword [esp + 0x48]
je 0x671fdd0a
test bl, 1
je 0x671fdd0d
movzx ecx, word [esp + 0x120]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x671fa667
mov eax, dword [esp + 0x122]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x673c9768]
shl eax, 7
and ecx, 0x8000007f
jns 0x671fa689
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [esp + 0x14]
add eax, ecx
movzx eax, word [eax*2 + 0x673cb968]
movzx eax, byte [eax*8 + 0x673c80eb]
test eax, eax
je 0x671fdd0a
mov ecx, dword [esp + 0x18]
mov dword [edx], 0x90010
mov word [edx + 4], ax
add edx, 6
cmp dword [esp + 0x44], 0xfffffffe
mov dword [esp + 0x14], edx
jne 0x671fde30
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
add esi, 2
mov eax, dword [esp + 0x34]
mov dword [esp + 0x84], 0xffffffff
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
push 6
lea eax, [esi + 2]
push 0x673c6e60
push eax
call fcn.67226460
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x671fa72e
mov ecx, dword [esp + 0x18]
add eax, 0xe
mov ebp, dword [esp + 0x28]
mov esi, str._b__w_
mov edi, dword [esp + 0x24]
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], esi
jmp 0x671f9ff4
push 6
add eax, 2
push str._:_:__
push eax
call fcn.67226460
add esp, 0xc
test eax, eax
jne 0x671fa76a
mov eax, dword [esp + 0x10]
mov esi, str._b___w_
mov ecx, dword [esp + 0x18]
add eax, 0xe
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], esi
jmp 0x671f9ff4
mov esi, dword [esp + 0x10]
mov ebx, dword [edi + 0x20]
sub ebx, dword [edi + 0x10]
sar ebx, 1
movzx eax, word [esi + 2]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x78], ebx
cmp eax, 0x3a
je 0x671fa791
cmp eax, 0x2e
je 0x671fa791
cmp eax, 0x3d
jne 0x671fa7ae
lea eax, [esp + 0x8c]
push eax
push esi
call fcn.671f9240
mov esi, dword [esp + 0x18]
add esp, 8
test eax, eax
jne 0x671fdef1
xor ecx, ecx
mov dword [esp + 0x40], ecx
add esi, 2
mov dword [esp + 0x10], esi
movzx edi, word [esi]
cmp edi, 0x5c
jne 0x671fa7f1
add esi, 2
cmp word [esi], 0x45
je 0x671fa7b4
push 3
push 0x673c6e70
push esi
call fcn.67226460
mov esi, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x671fa876
mov ecx, dword [esp + 0x40]
add esi, 6
jmp 0x671fa7b4
test ecx, ecx
jne 0x671fa7ff
cmp edi, 0x5e
jne 0x671fa7ff
lea ecx, [edi - 0x5d]
jmp 0x671fa7b0
cmp edi, 0x5d
jne 0x671fa876
mov eax, dword [esp + 0x18]
test dword [eax + 0x60], 0x2000000
je 0x671fa876
mov edx, dword [esp + 0x14]
test ecx, ecx
mov ebx, dword [esp + 0x44]
mov ecx, 0xd
mov eax, 0x9d
cmovne eax, ecx
mov ecx, dword [esp + 0x18]
mov word [edx], ax
add edx, 2
cmp ebx, 0xfffffffe
mov dword [esp + 0x14], edx
mov eax, 0xffffffff
cmove ebx, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x90], eax
mov dword [esp + 0x84], ebx
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
add esi, 2
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
lea eax, [ebp + 6]
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x5c], edx
xor ebp, ebp
mov dword [esp + 0x3c], eax
mov dword [esp + 0x70], ebx
xorps xmm0, xmm0
mov dword [esp + 0x38], ebp
mov ecx, eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x30], edx
movdqu xmmword [esp + 0x100], xmm0
movdqu xmmword [esp + 0x110], xmm0
test edi, edi
jne 0x671fa8c5
mov eax, dword [esp + 0x1c]
mov dword [eax], 6
jmp 0x671fe209
mov ecx, dword [esp + 0x50]
cmp dword [esp + 0x54], 0
je 0x671fa90c
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x671fa90c
movzx edi, word [esi]
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x671fa90c
movzx eax, word [esi + 2]
add esi, 2
and edi, 0x3ff
mov dword [esp + 0x10], esi
shl edi, 0xa
and eax, 0x3ff
or edi, eax
add edi, 0x10000
mov eax, dword [esp + 0x3c]
mov ebp, 1
cmp eax, ecx
cmova edx, ebp
cmp dword [esp + 0x4c], 0
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x2c], edx
je 0x671fa940
cmp eax, ecx
jbe 0x671fa940
mov ebp, dword [esp + 0x4c]
sub eax, ecx
sar eax, 1
mov dword [esp + 0x3c], ecx
add dword [ebp], eax
mov ebp, dword [esp + 0x38]
cmp dword [esp + 0x24], 0
je 0x671fa96d
cmp edi, 0x5c
jne 0x671fac6d
cmp word [esi + 2], 0x45
jne 0x671fac6d
add esi, 2
mov dword [esp + 0x24], 0
xor eax, eax
jmp 0x671fb192
cmp edi, 0x5b
jne 0x671fac20
movzx eax, word [esi + 2]
cmp eax, 0x3a
je 0x671fa98d
cmp eax, 0x2e
je 0x671fa98d
cmp eax, 0x3d
jne 0x671fac6d
lea eax, [esp + 0x8c]
push eax
push esi
call fcn.671f9240
mov esi, dword [esp + 0x18]
add esp, 8
test eax, eax
je 0x671fac6d
mov eax, dword [esp + 0x18]
xor ebp, ebp
cmp word [esi + 2], 0x3a
mov ebx, dword [eax + 8]
jne 0x671fde97
add esi, 4
mov dword [esp + 0x10], esi
cmp word [esi], 0x5e
jne 0x671fa9db
mov ebp, 1
add esi, 2
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x8c]
sub eax, esi
sar eax, 1
push eax
push esi
call fcn.671f91f0
mov edi, eax
add esp, 8
test edi, edi
js 0x671fde84
mov eax, dword [esp + 0x48]
test al, 1
je 0x671faa0a
xor ecx, ecx
cmp edi, 2
cmovle edi, ecx
test eax, 0x20000000
je 0x671faabc
mov eax, ebp
neg eax
sbb eax, eax
and eax, 0xe
add eax, edi
mov esi, dword [eax*4 + 0x674630f0]
test esi, esi
je 0x671faa45
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x70]
add eax, 2
mov dword [esp + 0x34], eax
add esi, 0xfffffffe
jmp 0x671fb18a
mov eax, edi
sub eax, 8
je 0x671fab33
dec eax
je 0x671fab2c
dec eax
je 0x671fab25
test ebp, ebp
je 0x671faabc
cmp dword [esp + 0x2c], 0
jne 0x671faa77
mov eax, dword [esp + 0x8c]
cmp word [eax + 4], 0x5d
je 0x671faabc
mov eax, dword [esp + 0x3c]
mov ecx, 2
mov word [eax], cx
mov eax, dword [esp + 0x3c]
add eax, ecx
push eax
push 0x100
mov dword [esp + 0x44], eax
call fcn.67226660
mov ecx, dword [esp + 0x44]
lea eax, [ecx + eax*2]
push eax
push 0x10ffff
mov dword [esp + 0x4c], eax
call fcn.67226660
mov ecx, dword [esp + 0x4c]
add esp, 0x10
lea eax, [ecx + eax*2]
mov dword [esp + 0x3c], eax
lea ecx, [edi + edi*2]
mov eax, dword [ecx*4 + 0x673c5b40]
mov esi, dword [ecx*4 + 0x673c5b48]
movdqu xmm0, xmmword [eax + ebx]
movdqu xmmword [esp + 0x130], xmm0
movdqu xmm0, xmmword [eax + ebx + 0x10]
mov eax, dword [ecx*4 + 0x673c5b44]
movdqu xmmword [esp + 0x140], xmm0
test eax, eax
js 0x671faba2
xor ecx, ecx
lea edx, [eax + ebx]
test esi, esi
js 0x671fab90
jmp 0x671fab10
mov al, byte [edx + ecx]
or byte [esp + ecx + 0x130], al
inc ecx
cmp ecx, 0x20
jb 0x671fab10
jmp 0x671faba2
mov edx, 0xd
jmp 0x671fab38
mov edx, 0xc
jmp 0x671fab38
mov edx, 0xb
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov esi, dword [esp + 0x8c]
test ebp, ebp
mov ebx, dword [esp + 0x70]
setne cl
add ecx, 3
mov word [eax], cx
xor ecx, ecx
mov eax, dword [esp + 0x3c]
add eax, 2
mov dword [esp + 0x3c], eax
mov word [eax], dx
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
add eax, 2
mov dword [esp + 0x3c], eax
mov word [eax], cx
mov ecx, 1
add dword [esp + 0x3c], 2
add esi, 2
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], ecx
jmp 0x671fb196
mov al, byte [edx + ecx]
not al
and byte [esp + ecx + 0x130], al
inc ecx
cmp ecx, 0x20
jb 0x671fab90
test esi, esi
jns 0x671faba8
neg esi
cmp esi, 1
jne 0x671fabb7
and byte [esp + 0x131], 0xc3
jmp 0x671fabc4
cmp esi, 2
jne 0x671fabc4
and byte [esp + 0x13b], 0x7f
xor ecx, ecx
test ebp, ebp
je 0x671fabf0
lea ebx, [ebx]
mov al, byte [esp + ecx + 0x130]
not al
or byte [esp + ecx + 0x100], al
inc ecx
cmp ecx, 0x20
jb 0x671fabd0
jmp 0x671fac04
mov al, byte [esp + ecx + 0x130]
or byte [esp + ecx + 0x100], al
inc ecx
cmp ecx, 0x20
jb 0x671fabf0
mov esi, dword [esp + 0x8c]
mov ebx, 1
add esi, 2
mov dword [esp + 0x38], 2
jmp 0x671fb186
cmp edi, 0x5c
jne 0x671fac6d
mov edi, dword [esp + 0x18]
lea eax, [esp + 0xbc]
push 1
push dword [esp + 0x4c]
push dword [edi + 0x40]
push dword [esp + 0x28]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.671f8a50
mov ecx, dword [esp + 0x34]
add esp, 0x18
mov esi, eax
cmp dword [ecx], 0
jne 0x671fde8e
test esi, esi
jne 0x671faced
mov edi, dword [esp + 0xbc]
mov esi, dword [esp + 0x10]
cmp word [esi + 2], 0x5c
jne 0x671fac91
cmp word [esi + 4], 0x45
jne 0x671fac91
add esi, 4
mov dword [esp + 0x24], 0
mov dword [esp + 0x10], esi
cmp word [esi + 2], 0x5c
je 0x671fac74
mov ecx, esi
cmp edi, 0xd
je 0x671fac9d
cmp edi, 0xa
jne 0x671faca8
mov eax, dword [esp + 0x18]
or dword [eax + 0x64], 0x800
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x671fb139
cmp word [esi + 2], 0x2d
jne 0x671fb139
add esi, 4
mov dword [esp + 0x10], esi
cmp word [esi], 0x5c
jne 0x671fb01a
cmp word [esi + 2], 0x45
jne 0x671fafe1
add esi, 4
mov dword [esp + 0x10], esi
cmp word [esi], 0x5c
je 0x671facd0
jmp 0x671fb01a
cmp esi, 5
jne 0x671facfa
lea edi, [esi + 3]
jmp 0x671fac69
cmp esi, 0xc
je 0x671fdeb1
cmp esi, 0x1a
jne 0x671fad30
mov esi, dword [esp + 0x10]
cmp word [esi + 2], 0x5c
jne 0x671fad22
cmp word [esi + 4], 0x45
jne 0x671fad22
add esi, 4
jmp 0x671fb18a
mov eax, 1
mov dword [esp + 0x24], eax
jmp 0x671fb18e
cmp esi, 0x19
je 0x671fad91
mov edx, dword [edi + 8]
lea eax, [esi - 6]
inc ebx
add ebp, 2
mov dword [esp + 0x70], ebx
mov dword [esp + 0x38], ebp
cmp eax, 0x1c
ja case.0x671fad57.12
movzx eax, byte [eax + 0x671fe314]
jmp dword [eax*4 + 0x671fe2e0]
mov esi, dword [esi*4 + 0x67463064]
mov eax, dword [esp + 0x10]
sub esi, 2
mov dword [esp + 0x34], eax
dec ebx
jmp 0x671fb186
xor ecx, ecx
jmp 0x671fad80
mov al, byte [edx + ecx + 0x40]
or byte [esp + ecx + 0x100], al
inc ecx
cmp ecx, 0x20
jb 0x671fad80
mov esi, dword [esp + 0x10]
jmp 0x671fb18a
mov dword [esp + 0x5c], 1
xor ecx, ecx
jmp 0x671fadb0
mov al, byte [edx + ecx + 0x40]
not al
or byte [esp + ecx + 0x100], al
inc ecx
cmp ecx, 0x20
jb 0x671fadb0
mov esi, dword [esp + 0x10]
jmp 0x671fb18a
xor ecx, ecx
mov edi, edi
mov al, byte [edx + ecx + 0xa0]
or byte [esp + ecx + 0x100], al
inc ecx
cmp ecx, 0x20
jb 0x671fadd0
mov esi, dword [esp + 0x10]
jmp 0x671fb18a
mov dword [esp + 0x5c], 1
xor ecx, ecx
jmp 0x671fae00
mov al, byte [edx + ecx + 0xa0]
not al
or byte [esp + ecx + 0x100], al
inc ecx
cmp ecx, 0x20
jb 0x671fae00
mov esi, dword [esp + 0x10]
jmp 0x671fb18a
lea eax, [esp + 0x100]
xor esi, esi
sub edx, eax
lea ebx, [ebx]
lea ecx, [esp + 0x100]
add ecx, esi
inc esi
mov al, byte [ecx + edx]
or byte [ecx], al
cmp esi, 0x20
jb 0x671fae30
mov esi, dword [esp + 0x10]
jmp 0x671fb18a
lea eax, [esp + 0x100]
mov dword [esp + 0x5c], 1
xor esi, esi
sub edx, eax
lea ecx, [esp + 0x100]
add ecx, esi
inc esi
mov al, byte [ecx + edx]
not al
or byte [ecx], al
cmp esi, 0x20
jb 0x671fae60
mov esi, dword [esp + 0x10]
jmp 0x671fb18a
push 0xffffffffffffffff
push 0x673c7a68
push edi
push dword [esp + 0x54]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x114]
push eax
call fcn.671f7c40
mov esi, dword [esp + 0x28]
add esp, 0x18
jmp 0x671fb18a
push 0x673c7a68
push edi
push dword [esp + 0x50]
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x110]
push eax
call fcn.671f7da0
mov esi, dword [esp + 0x24]
add esp, 0x14
jmp 0x671fb18a
push 0xffffffffffffffff
push str._n_v_f_r
push edi
push dword [esp + 0x54]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x114]
push eax
call fcn.671f7c40
mov esi, dword [esp + 0x28]
add esp, 0x18
jmp 0x671fb18a
push str._n_v_f_r
push edi
push dword [esp + 0x50]
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x110]
push eax
call fcn.671f7da0
mov esi, dword [esp + 0x24]
add esp, 0x14
jmp 0x671fb18a
push ecx
lea eax, [esp + 0x78]
mov dword [esp + 0x5c], 0
push eax
lea eax, [esp + 0x60]
mov dword [esp + 0x7c], 0
push eax
lea eax, [esp + 0x100]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.671ffa00
add esp, 0x14
test eax, eax
je 0x671fde8e
mov eax, dword [esp + 0x3c]
xor ecx, ecx
cmp esi, 0x10
mov edx, dword [esp + 0x2c]
sete cl
sub ecx, dword [esp + 0xf4]
neg ecx
sbb ecx, ecx
add ecx, 4
mov word [eax], cx
mov ecx, dword [esp + 0x3c]
movzx eax, word [esp + 0x58]
add ecx, 2
mov dword [esp + 0x3c], ecx
mov word [ecx], ax
mov ecx, dword [esp + 0x3c]
movzx eax, word [esp + 0x74]
add ecx, 2
mov dword [esp + 0x3c], ecx
mov word [ecx], ax
mov ecx, 1
add dword [esp + 0x3c], 2
dec ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x70], ebx
jmp 0x671fb196
test byte [esp + 0x48], 0x40
mov esi, dword [esp + 0x10]
jne 0x671fdea6
movzx edi, word [esi]
dec ebx
sub ebp, 2
mov dword [esp + 0x38], ebp
jmp 0x671fac6d
cmp word [esi], 0x5c
jne 0x671fb01a
cmp word [esi + 2], 0x51
jne 0x671fb01a
add esi, 4
mov dword [esp + 0x10], esi
cmp word [esi], 0x5c
jne 0x671fb011
cmp word [esi + 2], 0x45
jne 0x671fb011
add esi, 4
mov dword [esp + 0x10], esi
cmp word [esi], 0x5c
je 0x671fafe7
jmp 0x671fb01a
mov edx, 1
mov dword [esp + 0x24], edx
movzx eax, word [esi]
test ax, ax
je 0x671fb133
test edx, edx
jne 0x671fb033
cmp eax, 0x5d
je 0x671fb133
cmp dword [esp + 0x54], 0
mov edx, eax
mov dword [esp + 0x74], edx
je 0x671fb071
and eax, 0xfc00
cmp eax, 0xd800
jne 0x671fb071
movzx eax, word [esi + 2]
add esi, 2
and edx, 0x3ff
mov dword [esp + 0x10], esi
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
mov dword [esp + 0x74], edx
cmp dword [esp + 0x24], 0
jne 0x671fb0fe
cmp edx, 0x5c
jne 0x671fb0c9
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
push 1
push dword [esp + 0x4c]
push dword [eax + 0x40]
lea eax, [esp + 0x80]
push esi
push eax
lea eax, [esp + 0x24]
push eax
call fcn.671f8a50
add esp, 0x18
cmp dword [esi], 0
jne 0x671fde8e
test eax, eax
je 0x671fb0c3
cmp eax, 5
jne 0x671fdec0
lea edx, [eax + 3]
jmp 0x671fb0fa
mov edx, dword [esp + 0x74]
jmp 0x671fb0fa
cmp edx, 0x5b
jne 0x671fb0fe
movzx eax, word [esi + 2]
cmp eax, 0x3a
je 0x671fb0e1
cmp eax, 0x2e
je 0x671fb0e1
cmp eax, 0x3d
jne 0x671fb0fe
lea eax, [esp + 0x8c]
push eax
push esi
call fcn.671f9240
add esp, 8
test eax, eax
jne 0x671fdecf
mov esi, dword [esp + 0x10]
cmp edx, edi
jb 0x671fdee2
je 0x671fb139
mov dword [esp + 0x38], 2
cmp edx, 0xd
je 0x671fb11a
cmp edx, 0xa
jne 0x671fb12a
mov eax, dword [esp + 0x18]
push edx
push edi
push eax
or dword [eax + 0x64], 0x800
jmp 0x671fb167
mov eax, dword [esp + 0x18]
push edx
push edi
push eax
jmp 0x671fb167
mov esi, ecx
mov dword [esp + 0x10], esi
cmp ebp, 2
jge 0x671fb143
inc ebp
mov dword [esp + 0x38], ebp
cmp dword [esp + 0x24], 0
jne 0x671fb161
cmp dword [esp + 0x30], 0
jne 0x671fb161
cmp ebp, 1
jne 0x671fb161
cmp word [esi + 2], 0x5d
je 0x671fb2e5
push edi
push edi
push dword [esp + 0x20]
push dword [esp + 0x54]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x114]
push eax
call fcn.671f8090
mov esi, dword [esp + 0x28]
add esp, 0x18
add ebx, eax
mov dword [esp + 0x70], ebx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
add esi, 2
mov dword [esp + 0x10], esi
movzx edi, word [esi]
test edi, edi
jne 0x671fb1ca
mov edi, dword [esp + 0x34]
test edi, edi
je 0x671fa8b2
lea esi, [edi + 2]
mov dword [esp + 0x34], 0
mov dword [esp + 0x10], esi
movzx edi, word [esi]
test edi, edi
je 0x671fa8b2
cmp edi, 0x5d
jne 0x671fa8c1
test eax, eax
jne 0x671fa8c1
mov esi, dword [esp + 0x50]
mov eax, 1
cmp dword [esp + 0x3c], esi
mov ebp, 0xffffffff
cmova edx, eax
mov eax, dword [esp + 0x44]
cmp eax, 0xfffffffe
cmove eax, ebp
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x44], eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x90], ebp
mov dword [esp + 0x74], eax
test edx, edx
je 0x671fb4ab
test ecx, ecx
jne 0x671fb245
mov edx, dword [esp + 0x5c]
test edx, edx
je 0x671fb245
test dword [esp + 0x48], 0x20000000
je 0x671fb4af
mov eax, dword [esp + 0x3c]
xor edx, edx
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x40]
mov word [eax], dx
mov eax, 0x70
add dword [esp + 0x3c], 2
mov word [edi], ax
xor eax, eax
test esi, esi
setne al
movzx eax, ax
mov word [edi + 4], ax
test ecx, ecx
je 0x671fb27c
or eax, 4
mov word [edi + 4], ax
test ebx, ebx
jle 0x671fb479
or word [edi + 4], 2
add edi, 6
mov eax, dword [esp + 0x3c]
sub eax, edi
and eax, 0xfffffffe
push eax
lea eax, [edi + 0x20]
push edi
push eax
call dword [0x672482fc]
add esp, 0xc
test esi, esi
je 0x671fb2be
cmp dword [esp + 0x30], 0
jne 0x671fb2be
xor ecx, ecx
not byte [esp + ecx + 0x100]
inc ecx
cmp ecx, 0x20
jb 0x671fb2b1
movdqu xmm0, xmmword [esp + 0x100]
movdqu xmmword [edi], xmm0
movdqu xmm0, xmmword [esp + 0x110]
movdqu xmmword [edi + 0x10], xmm0
mov edx, dword [esp + 0x3c]
add edx, 0x20
jmp 0x671fb47d
mov eax, dword [esp + 0x7c]
add esi, 2
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x74], eax
test esi, esi
je 0x671fb438
mov eax, dword [esp + 0x44]
mov ecx, 0xffffffff
mov ebx, dword [esp + 0x54]
cmp eax, 0xfffffffe
cmove eax, ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x44], eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x90], ecx
test ebx, ebx
je 0x671fb3b2
test al, 1
je 0x671fb3b4
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x673c9768]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x671fb363
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x673cb968]
movzx eax, byte [eax*8 + 0x673c80eb]
test eax, eax
je 0x671fb3ae
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov dword [edx], 0x9000f
mov word [edx + 4], ax
add edx, 6
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
add esi, 2
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov eax, dword [esp + 0x48]
test al, 1
mov edx, dword [esp + 0x14]
mov eax, 0
setne al
add eax, 0x1f
mov word [edx], ax
add edx, 2
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x671fb40e
cmp edi, 0xffff
jbe 0x671fb40e
push edx
push edi
call fcn.67226660
mov edx, dword [esp + 0x1c]
add esp, 8
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
add esi, 2
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
lea edx, [edx + eax*2]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov word [edx], di
add edx, 2
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
add esi, 2
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
cmp dword [esp + 0x54], 0
je 0x671fb463
cmp edi, 0xffff
jbe 0x671fb463
lea eax, [esp + 0x120]
push eax
push edi
call fcn.67226660
mov edx, dword [esp + 0x1c]
add esp, 8
mov edi, eax
jmp 0x671fa605
mov edx, dword [esp + 0x14]
mov word [esp + 0x120], di
mov edi, 1
jmp 0x671fa605
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x28]
mov eax, edx
mov ecx, dword [esp + 0x18]
sub eax, ebp
mov edi, dword [esp + 0x24]
sar eax, 1
mov word [ebp + 2], ax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
add esi, 2
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x4c]
test ebx, ebx
je 0x671fb4c1
mov eax, dword [esp + 0x3c]
sub eax, esi
sar eax, 1
add dword [ebx], eax
mov esi, dword [esp + 0x40]
xor eax, eax
cmp esi, edx
mov edx, dword [esp + 0x14]
setne al
add eax, 0x6e
mov word [edx], ax
test ebx, ebx
jne 0x671fb509
test esi, esi
je 0x671fb4ed
xor ecx, ecx
not byte [esp + ecx + 0x100]
inc ecx
cmp ecx, 0x20
jb 0x671fb4e0
movdqu xmm0, xmmword [esp + 0x100]
movdqu xmmword [edx + 2], xmm0
movdqu xmm0, xmmword [esp + 0x110]
movdqu xmmword [edx + 0x12], xmm0
mov esi, dword [esp + 0x10]
add edx, 0x22
mov ecx, dword [esp + 0x18]
add esi, 2
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
test ecx, ecx
je case.0x671fa45b.1
mov ebx, dword [esp + 0x1c]
lea eax, [esp + 0x64]
push ebx
push eax
lea eax, [esp + 0x70]
push eax
lea eax, [esi + 2]
push eax
call fcn.67200c90
add esp, 0x10
mov esi, eax
cmp dword [ebx], 0
mov dword [esp + 0x10], esi
jne 0x671fe209
mov ebp, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
jmp 0x671fb590
xor eax, eax
or ebp, 0xffffffff
jmp 0x671fb584
mov eax, 1
or ebp, 0xffffffff
jmp 0x671fb584
xor eax, eax
mov ebp, 1
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], ebp
mov edi, dword [esp + 0x28]
test edi, edi
je 0x671fdf1d
test eax, eax
jne 0x671fb5c9
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x6c], ecx
xor ebx, ebx
mov dword [esp + 0x60], edi
cmp eax, ebp
mov dword [esp + 0x30], ebx
mov ecx, 2
cmove ecx, ebx
mov dword [esp + 0x94], ecx
test edx, edx
je 0x671fb6ce
add esi, 2
mov edx, 0xff
movzx eax, word [esi]
mov ebx, dword [esp + 0x18]
cmp ax, dx
ja 0x671fb618
mov ecx, dword [ebx + 0xc]
movzx eax, ax
test byte [eax + ecx], 1
je 0x671fb618
movzx eax, word [esi + 2]
add esi, 2
cmp ax, dx
jbe 0x671fb603
cmp word [esi], 0x23
jne 0x671fb6c3
movzx edi, word [esi + 2]
add esi, 2
test di, di
je 0x671fb5f4
mov edi, edi
mov edx, dword [ebx + 0x84]
mov ecx, dword [ebx + 0x1c]
test edx, edx
je 0x671fb666
cmp esi, ecx
jae 0x671fb690
push dword [esp + 0x54]
lea eax, [ebx + 0x88]
push eax
push ecx
push edx
push esi
call fcn.672264e0
add esp, 0x14
test eax, eax
je 0x671fb690
mov eax, dword [ebx + 0x88]
lea esi, [esi + eax*2]
jmp 0x671fb5ef
mov edx, dword [ebx + 0x88]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x671fb690
cmp di, word [ebx + 0x8c]
jne 0x671fb690
cmp edx, 1
je 0x671fb65b
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x8e]
je 0x671fb65b
add esi, 2
cmp dword [esp + 0x54], 0
je 0x671fb6b2
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x671fb6b2
add esi, 2
movzx edi, word [esi]
test di, di
jne 0x671fb630
jmp 0x671fb5ef
mov edi, dword [esp + 0x28]
add esi, 0xfffffffe
mov dword [esp + 0x10], esi
movzx ecx, word [esi + 2]
cmp ecx, 0x2b
jne 0x671fb6ea
xor ebx, ebx
mov dword [esp + 0x30], 1
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x671fb706
cmp ecx, 0x3f
jne 0x671fb6ff
mov ebx, dword [esp + 0xd0]
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x671fb706
mov ebx, dword [esp + 0xc4]
cmp word [edi], 0x75
mov dword [esp + 0x2c], ebx
jne 0x671fb772
push 4
lea eax, [edi + 4]
push edi
push eax
call dword [0x672482fc]
add dword [esp + 0x20], 8
add esp, 0xc
cmp dword [esp + 0x4c], 0
mov dword [edi], 0x40081
mov dword [edi + 8], 0x40078
mov dword [esp + 0x9c], 6
jne 0x671fb76e
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x20]
add eax, 2
cmp ecx, eax
jb 0x671fb76e
movzx edx, word [ecx - 2]
mov eax, edi
sub eax, dword [esi + 0x14]
add eax, 2
sar eax, 1
cmp edx, eax
jne 0x671fb76e
lea eax, [edx + 2]
mov word [ecx - 2], ax
mov esi, dword [esp + 0x10]
movzx edi, word [edi]
cmp edi, 0x1d
je 0x671fbfaa
cmp edi, 0x1e
je 0x671fbfaa
cmp edi, 0x1f
je 0x671fbfaa
cmp edi, 0x20
je 0x671fbfaa
cmp edi, 0x17
jae 0x671fb7aa
mov ebp, 0x34
mov ebx, edi
jmp 0x671fc052
cmp edi, 0x6e
je 0x671fbf04
cmp edi, 0x6f
je 0x671fbf04
cmp edi, 0x70
je 0x671fbf04
cmp edi, 0x71
je 0x671fbf04
cmp edi, 0x72
je 0x671fbf04
cmp edi, 0x73
je 0x671fbf04
cmp edi, 0x74
je 0x671fbf04
cmp edi, 0x7d
jb 0x671fbeca
mov eax, 0x87
cmp di, ax
ja 0x671fbeca
mov edx, dword [esp + 0x14]
xor eax, eax
mov ebp, dword [esp + 0x78]
mov ecx, edx
sub ecx, dword [esp + 0x28]
mov dword [esp + 0x40], eax
mov dword [esp + 0x58], eax
mov eax, 0x87
sar ecx, 1
mov dword [esp + 0x38], ecx
cmp di, ax
jne 0x671fb83f
mov eax, dword [esp + 0x28]
mov ebx, 0x91
cmp word [eax + 4], bx
mov ebx, dword [esp + 0x2c]
je 0x671fbedc
mov eax, 0x81
cmp di, ax
mov eax, dword [esp + 0x68]
jae 0x671fb86d
test eax, eax
jg 0x671fbedc
mov edi, dword [esp + 0x64]
test edi, edi
js 0x671fb862
cmp edi, 1
jle 0x671fb871
mov edi, 1
mov dword [esp + 0x64], edi
jmp 0x671fb871
mov edi, dword [esp + 0x64]
test eax, eax
jne 0x671fb970
mov word [edx], ax
push dword [esp + 0x78]
push dword [esp + 0x1c]
push dword [esp + 0x5c]
cmp edi, 1
jg 0x671fb91b
push 1
push dword [esp + 0x38]
call fcn.671f8300
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x4c]
add eax, eax
push eax
lea esi, [ecx + 2]
push ecx
push esi
call dword [0x672482fc]
mov edx, dword [esp + 0x34]
add esp, 0x20
add edx, 2
mov dword [esp + 0x14], edx
test edi, edi
jne 0x671fb8fc
mov eax, dword [esp + 0x28]
mov ecx, 0xa1
mov edi, dword [esp + 0x24]
xor ebp, ebp
mov dword [esp + 0x28], ebp
mov word [eax], cx
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x94]
or dword [ecx + 0x68], eax
add esi, 2
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov ecx, dword [esp + 0x28]
lea eax, [ebx + 0x92]
mov dword [esp + 0x28], esi
dec edi
mov dword [esp + 0x58], ecx
mov word [ecx], ax
mov esi, dword [esp + 0x10]
jmp 0x671fbad4
mov esi, dword [esp + 0x34]
push 3
push esi
call fcn.671f8300
mov eax, dword [esp + 0x4c]
add eax, eax
push eax
lea eax, [esi + 6]
push esi
push eax
call dword [0x672482fc]
add dword [esp + 0x34], 6
lea eax, [ebx + 0x92]
mov word [esi], ax
add esp, 0x20
mov eax, 0x83
mov word [esi + 2], ax
add esi, 4
xor eax, eax
mov dword [esp + 0x40], esi
mov word [esi], ax
add esi, 2
mov dword [esp + 0x28], esi
dec edi
mov esi, dword [esp + 0x10]
jmp 0x671fbad4
cmp eax, 1
jle 0x671fbaca
mov ebx, dword [esp + 0x4c]
test ebx, ebx
je 0x671fb9cd
lea ecx, [eax - 1]
mov eax, dword [esp + 0x9c]
movd xmm1, ecx
mov edx, ecx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
imul edx, eax
mulsd xmm1, xmm0
comisd xmm1, xmmword [0x673c6f20]
ja 0x671fde48
mov ecx, dword [ebx]
mov eax, 0x7fffffeb
sub eax, ecx
cmp eax, edx
jl 0x671fde48
lea eax, [edx + ecx]
mov dword [ebx], eax
jmp 0x671fbac6
cmp dword [esp + 0xa8], 0
je 0x671fb9f1
cmp dword [esp + 0x6c], 0
jge 0x671fb9f1
mov ebx, dword [esp + 0x80]
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x6c], ebx
mov ebx, 1
cmp eax, ebx
jle 0x671fbaca
lea eax, [ecx + ecx]
mov esi, dword [esp + 0x18]
push eax
push dword [esp + 0x2c]
mov edi, dword [esi + 0x20]
sub edi, dword [esi + 0x10]
sar edi, 1
push edx
mov dword [esp + 0x5c], edi
call fcn.67226d54
mov ecx, dword [esi + 0x3c]
add esp, 0xc
mov eax, dword [esi + 0x10]
sub ecx, edi
add ecx, ebp
lea eax, [eax + ecx*2]
add eax, 0xffffff38
cmp dword [esi + 0x20], eax
jbe 0x671fba64
push esi
call fcn.671fee70
mov ecx, dword [esp + 0x20]
add esp, 4
mov dword [ecx], eax
test eax, eax
jne 0x671fde8e
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x10]
sub ecx, edi
add ecx, ebp
lea eax, [eax + ecx*2]
add eax, 0xffffff38
cmp dword [esi + 0x20], eax
ja 0x671fba36
mov eax, dword [esi + 0x10]
lea esi, [edi + edi]
lea edx, [eax + ebp*2]
add eax, esi
cmp edx, eax
jae 0x671fbaa0
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x18]
jmp 0x671fba80
mov cx, word [edx]
add edx, 2
mov eax, dword [ebp + 0x20]
add cx, di
mov word [eax], cx
add dword [ebp + 0x20], 2
mov eax, dword [ebp + 0x10]
add eax, esi
cmp edx, eax
jb 0x671fba80
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x38]
inc ebx
mov edx, dword [esp + 0x14]
mov ebp, edi
lea eax, [ecx + ecx]
add edx, eax
mov dword [esp + 0x14], edx
cmp ebx, dword [esp + 0x68]
jl 0x671fba01
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x2c]
test edi, edi
jle 0x671fbada
sub edi, eax
mov dword [esp + 0x64], edi
test edi, edi
js 0x671fbd0d
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x671fbb73
test edi, edi
jle 0x671fbb73
mov eax, dword [esp + 0x9c]
add eax, 5
movd xmm0, edi
cvtdq2pd xmm0, xmm0
mov ecx, eax
movd xmm1, eax
cvtdq2pd xmm1, xmm1
imul ecx, edi
mulsd xmm1, xmm0
sub ecx, 4
comisd xmm1, xmmword [0x673c6f20]
ja 0x671fde48
mov edx, dword [edx]
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jl 0x671fde48
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x4c]
mov dword [ecx], eax
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x40]
test ebx, ebx
je 0x671fbcdc
mov ecx, edi
mov edx, edi
sub ecx, ebx
sar ecx, 1
inc ecx
lea eax, [ecx + ecx]
sub edx, eax
movzx eax, word [edx + 2]
test eax, eax
jne 0x671fbcb4
xor ebx, ebx
jmp 0x671fbcb9
lea eax, [edi - 1]
mov dword [esp + 0x50], eax
test eax, eax
js 0x671fbb42
mov ecx, dword [esp + 0x38]
lea edx, [ebx + 0x92]
mov esi, dword [esp + 0x18]
add ecx, ecx
mov edi, dword [esp + 0x14]
mov dword [esp + 0x5c], edx
mov ebx, dword [esi + 0x20]
sub ebx, dword [esi + 0x10]
sar ebx, 1
mov word [edi], dx
add edi, 2
mov dword [esp + 0x58], ebx
mov dword [esp + 0x14], edi
test eax, eax
je 0x671fbbdb
mov edx, dword [esp + 0x40]
mov eax, 0x83
mov word [edi], ax
add edi, 2
test edx, edx
jne 0x671fbbc7
xor eax, eax
jmp 0x671fbbcd
mov eax, edi
sub eax, edx
sar eax, 1
mov dword [esp + 0x40], edi
mov word [edi], ax
add edi, 2
mov dword [esp + 0x14], edi
push ecx
push dword [esp + 0x2c]
push edi
call fcn.67226d54
mov ecx, dword [esi + 0x3c]
add esp, 0xc
mov eax, dword [esi + 0x10]
sub ecx, ebx
add ecx, ebp
lea eax, [eax + ecx*2]
add eax, 0xffffff38
cmp dword [esi + 0x20], eax
jbe 0x671fbc2e
push esi
call fcn.671fee70
mov ecx, dword [esp + 0x20]
add esp, 4
mov dword [ecx], eax
test eax, eax
jne 0x671fde8e
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x10]
sub ecx, ebx
add ecx, ebp
lea eax, [eax + ecx*2]
add eax, 0xffffff38
cmp dword [esi + 0x20], eax
ja 0x671fbc00
mov eax, dword [esi + 0x10]
lea edi, [ebx + ebx]
lea edx, [eax + ebp*2]
add eax, edi
cmp edx, eax
jae 0x671fbc85
mov ebx, dword [esp + 0x38]
xor eax, eax
cmp dword [esp + 0x50], eax
mov ebp, dword [esp + 0x18]
setne al
lea eax, [eax*2 + 1]
movzx esi, ax
jmp 0x671fbc60
mov cx, word [edx]
add edx, 2
mov eax, dword [ebp + 0x20]
add cx, si
add cx, bx
mov word [eax], cx
add dword [ebp + 0x20], 2
mov eax, dword [ebp + 0x10]
add eax, edi
cmp edx, eax
jb 0x671fbc60
mov ebx, dword [esp + 0x58]
mov esi, ebp
mov eax, dword [esp + 0x38]
mov ebp, ebx
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x5c]
lea ecx, [eax + eax]
mov eax, dword [esp + 0x50]
add edi, ecx
dec eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x50], eax
jns 0x671fbb96
mov esi, dword [esp + 0x10]
jmp 0x671fbb46
neg eax
lea ebx, [ebx + eax*2]
mov eax, 0x78
mov word [edi], ax
mov word [edi + 2], cx
add edi, 4
mov word [edx + 2], cx
test ebx, ebx
jne 0x671fbb52
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], edi
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x30]
test ebp, ebp
je 0x671fbedc
mov eax, dword [esp + 0x60]
movzx ecx, word [eax]
lea eax, [ecx - 0x1d]
cmp eax, 0x53
ja case.0x671fbd06.33
movzx eax, byte [eax + 0x671fe348]
jmp dword [eax*4 + 0x671fe334]
mov edx, dword [esp + 0x14]
mov ecx, 0x81
movzx eax, word [edx - 2]
lea edi, [edx - 4]
add eax, eax
mov ebx, edi
sub ebx, eax
lea esi, [ecx + 1]
movzx eax, word [ebx]
cmp ax, cx
je 0x671fbd33
cmp ax, si
jne 0x671fbd45
mov ebp, dword [esp + 0x30]
test ebp, ebp
je 0x671fbd49
mov eax, 0x83
mov word [ebx], ax
jmp 0x671fbd5b
mov ebp, dword [esp + 0x30]
cmp ax, cx
je 0x671fbeb7
cmp ax, si
je 0x671fbeb7
cmp dword [esp + 0x4c], 0
jne 0x671fbd94
mov esi, ebx
push 0
push dword [esp + 0x1c]
push dword [esp + 0x5c]
push edi
push esi
call fcn.671fe9c0
add esp, 0x14
test eax, eax
jne 0x671fbd8c
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x77
lea esi, [esi + eax*2]
je 0x671fbd64
jmp 0x671fbd90
add word [ebx], 5
mov edx, dword [esp + 0x14]
mov ecx, 0x87
lea esi, [ecx + 5]
cmp word [ebx], cx
jne 0x671fbdaf
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
je 0x671fbdaf
mov word [ebx], si
test ebp, ebp
je 0x671fbe81
movzx eax, word [ebx]
cmp ax, cx
je 0x671fbdd2
cmp ax, si
je 0x671fbdd2
inc eax
mov word [ebx], ax
mov eax, 0x7b
mov word [edi], ax
jmp 0x671fbe3a
push dword [esp + 0x78]
mov esi, edx
xor eax, eax
push dword [esp + 0x1c]
sub esi, ebx
mov word [edx], ax
push dword [esp + 0x5c]
sar esi, 1
push 2
push ebx
call fcn.671f8300
lea eax, [esi + esi]
push eax
lea eax, [ebx + 4]
push ebx
push eax
call dword [0x672482fc]
mov edx, dword [esp + 0x34]
add esi, 2
mov ecx, 0x87
add esp, 0x20
cmp word [ebx], cx
mov eax, 0x89
mov ecx, 0x84
cmove eax, ecx
mov word [ebx], ax
mov eax, 0x7b
mov word [edx + 4], ax
mov word [edx + 6], si
add edx, 8
mov dword [esp + 0x14], edx
mov word [ebx + 2], si
mov eax, dword [esp + 0x58]
test eax, eax
je 0x671fbe4a
mov ecx, 0x94
mov word [eax], cx
cmp dword [esp + 0x68], 2
mov esi, dword [esp + 0x10]
jge 0x671fbce4
mov ecx, dword [esp + 0x18]
xor ebp, ebp
mov eax, dword [esp + 0x94]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x28], ebp
or dword [ecx + 0x68], eax
add esi, 2
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov eax, dword [esp + 0x2c]
xor ebp, ebp
mov ecx, dword [esp + 0x18]
add eax, 0x79
mov word [edi], ax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x94]
or dword [ecx + 0x68], eax
add esi, 2
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov eax, dword [esp + 0x2c]
add eax, 0x79
mov word [edi], ax
mov esi, dword [esp + 0x10]
jmp 0x671fbce4
mov eax, 0x9d
cmp di, ax
jne 0x671fdf0e
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
xor ebp, ebp
mov eax, dword [esp + 0x94]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x28], ebp
or dword [ecx + 0x68], eax
add esi, 2
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
test ebp, ebp
jne 0x671fbf12
mov edx, dword [esp + 0x28]
mov dword [esp + 0x14], edx
jmp 0x671fbedc
mov ecx, dword [esp + 0x68]
test ecx, ecx
jne 0x671fbf58
cmp ebp, 0xffffffff
jne 0x671fbf39
mov edx, dword [esp + 0x14]
lea eax, [ebx + 0x62]
mov word [edx], ax
add edx, 2
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], edx
jmp 0x671fbce0
cmp ebp, 1
jne 0x671fbf7c
mov edx, dword [esp + 0x14]
lea eax, [ebx + 0x66]
mov word [edx], ax
add edx, 2
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], edx
jmp 0x671fbce0
cmp ecx, 1
jne 0x671fbf7c
cmp ebp, 0xffffffff
jne 0x671fbf7c
mov edx, dword [esp + 0x14]
lea eax, [ebx + 0x64]
mov word [edx], ax
add edx, 2
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], edx
jmp 0x671fbce0
mov edx, dword [esp + 0x14]
lea eax, [ebx + 0x68]
mov word [edx], ax
xor eax, eax
cmp ebp, 0xffffffff
mov word [edx + 2], cx
cmove ebp, eax
mov word [edx + 4], bp
add edx, 6
mov esi, dword [esp + 0x10]
mov dword [esp + 0x64], ebp
mov dword [esp + 0x14], edx
jmp 0x671fbce0
mov eax, edi
sub eax, 0x1e
je 0x671fbfc9
dec eax
je 0x671fbfc2
dec eax
je 0x671fbfbb
xor ebp, ebp
jmp 0x671fbfce
mov ebp, 0x27
jmp 0x671fbfce
mov ebp, 0x1a
jmp 0x671fbfce
mov ebp, 0xd
cmp dword [esp + 0x54], 0
je 0x671fc028
mov edx, dword [esp + 0x14]
mov ebx, 0xfc00
mov ax, word [edx - 2]
lea ecx, [edx - 2]
and ax, bx
cmp ax, word [esp + 0xd4]
jne 0x671fc028
mov ax, word [ecx]
and ax, bx
mov ebx, 0xdc00
cmp ax, bx
jne 0x671fc005
sub ecx, 2
mov ebx, edx
sub ebx, ecx
sar ebx, 1
lea eax, [ebx + ebx]
push eax
push ecx
lea eax, [esp + 0x158]
push eax
call fcn.67226d54
add esp, 0xc
or ebx, 0x10000000
jmp 0x671fc052
mov eax, dword [esp + 0x14]
movzx ebx, word [eax - 2]
cmp edi, 0x1e
ja 0x671fc056
cmp dword [esp + 0x68], 1
jle 0x671fc056
mov eax, dword [esp + 0x18]
mov dword [esp + 0x7c], ebx
mov eax, dword [eax + 0x68]
or eax, dword [esp + 0xa0]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x14]
cmp edi, 0x10
je 0x671fc067
cmp edi, 0xf
je 0x671fc067
or edx, 0xffffffff
or edi, edx
jmp 0x671fc073
mov ecx, dword [esp + 0x28]
movzx edi, word [ecx + 2]
movzx edx, word [ecx + 4]
cmp dword [esp + 0x64], 0
mov ecx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], edx
mov dword [esp + 0x14], eax
je 0x671fbed8
mov eax, dword [esp + 0x2c]
add eax, ebp
cmp dword [esp + 0x68], 0
mov dword [esp + 0x2c], eax
jne 0x671fc0f5
mov ecx, dword [esp + 0x64]
cmp ecx, 0xffffffff
jne 0x671fc0bc
mov ecx, dword [esp + 0x28]
add eax, 0x21
lea edx, [ecx + 2]
mov word [ecx], ax
mov dword [esp + 0x14], edx
jmp 0x671fc299
mov esi, dword [esp + 0x38]
cmp ecx, 1
jne 0x671fc0db
mov ecx, dword [esp + 0x28]
add eax, 0x25
lea edx, [ecx + 2]
mov word [ecx], ax
mov dword [esp + 0x14], edx
jmp 0x671fc29d
mov edx, dword [esp + 0x28]
add eax, 0x27
mov word [edx], ax
mov word [edx + 2], cx
add edx, 4
mov dword [esp + 0x14], edx
jmp 0x671fc29d
cmp dword [esp + 0x68], 1
jne 0x671fc14b
mov edx, dword [esp + 0x64]
cmp edx, 0xffffffff
jne 0x671fc11b
mov ecx, dword [esp + 0x28]
add eax, 0x23
lea edx, [ecx + 2]
mov word [ecx], ax
mov dword [esp + 0x14], edx
jmp 0x671fc299
mov dword [esp + 0x14], ecx
cmp edx, 1
je 0x671fbed8
add eax, 0x27
mov word [ecx], ax
lea eax, [ecx + 2]
mov dword [esp + 0x14], eax
lea eax, [edx - 1]
mov edx, dword [esp + 0x14]
mov word [edx], ax
add edx, 2
mov dword [esp + 0x14], edx
jmp 0x671fc299
mov ecx, dword [esp + 0x28]
lea eax, [ebp + 0x29]
lea ebp, [ecx + 2]
mov word [ecx], ax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov word [ebp], ax
add ebp, 2
mov dword [esp + 0x14], ebp
test ecx, ecx
jns 0x671fc208
cmp dword [esp + 0x54], 0
je 0x671fc1b5
test ebx, 0x10000000
je 0x671fc1b5
mov esi, ebx
lea eax, [esp + 0x150]
and esi, 7
add esi, esi
push esi
push eax
push ebp
call fcn.67226d54
mov eax, dword [esp + 0x38]
mov edx, ebp
add edx, esi
add eax, 0x21
add esp, 0xc
mov word [edx], ax
add edx, 2
mov dword [esp + 0x14], edx
jmp 0x671fc299
mov word [ebp], bx
add ebp, 2
mov dword [esp + 0x14], ebp
test edi, edi
js 0x671fc1ee
mov eax, dword [esp + 0x2c]
mov word [ebp], di
add eax, 0x21
add ebp, 2
mov dword [esp + 0x14], ebp
mov word [ebp], dx
mov edx, ebp
add edx, 2
mov word [edx], ax
add edx, 2
mov dword [esp + 0x14], edx
jmp 0x671fc299
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
add eax, 0x21
mov word [edx], ax
add edx, 2
mov dword [esp + 0x14], edx
jmp 0x671fc299
cmp ecx, eax
je 0x671fc295
cmp dword [esp + 0x54], 0
je 0x671fc248
test ebx, 0x10000000
je 0x671fc248
mov esi, ebx
lea eax, [esp + 0x150]
and esi, 7
add esi, esi
push esi
push eax
push ebp
call fcn.67226d54
mov edx, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0x64]
add edx, esi
mov eax, dword [esp + 0x68]
jmp 0x671fc252
mov edx, dword [esp + 0x14]
mov word [edx], bx
add edx, 2
mov esi, dword [esp + 0x38]
test edi, edi
js 0x671fc264
mov word [edx], di
mov word [edx + 2], si
add edx, 4
sub ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x64], ecx
cmp ecx, 1
jne 0x671fc282
add eax, 0x25
mov word [edx], ax
add edx, 2
mov dword [esp + 0x14], edx
jmp 0x671fc29d
add eax, 0x27
mov word [edx], ax
mov word [edx + 2], cx
add edx, 4
mov dword [esp + 0x14], edx
jmp 0x671fc29d
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x38]
cmp dword [esp + 0x54], 0
je 0x671fc2cb
test ebx, 0x10000000
je 0x671fc2cb
and ebx, 7
lea eax, [esp + 0x150]
add ebx, ebx
push ebx
push eax
push edx
call fcn.67226d54
mov edx, dword [esp + 0x20]
add esp, 0xc
add edx, ebx
jmp 0x671fc2d1
mov word [edx], bx
add edx, 2
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x14], edx
test edi, edi
js 0x671fbec1
mov word [edx], di
mov word [edx + 2], si
add edx, 4
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], edx
jmp 0x671fbce4
mov eax, dword [esp + 0x60]
movzx eax, word [eax + 4]
cmp eax, 0x10
je 0x671fc317
cmp eax, 0xf
je 0x671fc317
movzx ecx, byte [ecx + 0x673c79a0]
xor eax, eax
add ecx, eax
jmp 0x671fc36d
movzx ecx, byte [ecx + 0x673c79a0]
mov eax, 2
add ecx, eax
jmp 0x671fc36d
movzx eax, byte [ecx + 0x673c79a0]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x54]
lea ecx, [ecx + eax*2]
mov dword [esp + 0x60], ecx
test ebx, ebx
je 0x671fc37c
mov ax, word [ecx - 2]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xd800
cmp ax, cx
jne 0x671fc37c
add dword [esp + 0x60], 2
jmp 0x671fc37c
add dword [esp + 0x60], 0x22
jmp case.0x671fbd06.33
mov ecx, dword [esp + 0x60]
movzx ecx, word [ecx + 2]
mov eax, dword [esp + 0x60]
lea eax, [eax + ecx*2]
mov dword [esp + 0x60], eax
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x60]
mov edi, edx
sub edi, ecx
sar edi, 1
test edi, edi
jle 0x671fbedc
movzx eax, word [ecx]
cmp eax, 0x76
jae 0x671fc3af
mov al, byte [eax + 0x673c6dc0]
test al, al
je 0x671fc3af
movzx eax, al
mov word [ecx], ax
mov esi, dword [esp + 0x10]
jmp 0x671fbedc
push dword [esp + 0x78]
xor eax, eax
push dword [esp + 0x1c]
mov word [edx], ax
push ebx
push 2
push dword [esp + 0x70]
call fcn.671f8300
lea eax, [edi + edi]
push eax
mov eax, dword [esp + 0x78]
push eax
add eax, 4
push eax
call dword [0x672482fc]
mov eax, dword [esp + 0x80]
mov ecx, 0x81
mov edx, dword [esp + 0x34]
add edi, 2
add esp, 0x20
mov word [eax], cx
mov eax, 0x78
mov word [edx + 4], ax
mov word [edx + 6], di
add edx, 8
mov eax, dword [esp + 0x60]
mov dword [esp + 0x14], edx
mov word [eax + 2], di
mov esi, dword [esp + 0x10]
jmp 0x671fbedc
add esi, 2
mov dword [esp + 0x10], esi
movzx edx, word [esi]
cmp edx, 0x2a
jne 0x671fc6c1
movzx eax, word [esi + 2]
lea ecx, [esi + 2]
mov dword [esp + 0x40], ecx
cmp eax, 0x3a
je 0x671fc45d
mov ecx, 0xff
cmp ax, cx
ja 0x671fc6c1
mov ecx, eax
mov eax, dword [edi + 0xc]
test byte [ecx + eax], 2
je 0x671fc6c1
mov ecx, dword [esp + 0x40]
xor edx, edx
mov dword [esp + 0x50], 0
mov esi, ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x28], edx
mov ebp, 0x673c59f0
mov dword [esp + 0x10], esi
mov edx, 0xff
movzx eax, word [esi]
cmp ax, dx
ja 0x671fc4ac
mov ecx, dword [edi + 0xc]
lea ebx, [ebx]
movzx eax, ax
test byte [eax + ecx], 2
je 0x671fc4a8
add esi, 2
mov dword [esp + 0x10], esi
movzx eax, word [esi]
cmp ax, dx
jbe 0x671fc490
mov ecx, dword [esp + 0x40]
mov ebx, esi
sub ebx, ecx
sar ebx, 1
cmp word [esi], 0x3a
jne 0x671fc4ff
add esi, 2
mov dword [esp + 0x10], esi
mov edx, esi
mov dword [esp + 0x58], edx
movzx eax, word [esi]
test ax, ax
je 0x671fc4e5
lea ecx, [ecx]
cmp ax, 0x29
je 0x671fc4e5
add esi, 2
mov dword [esp + 0x10], esi
movzx eax, word [esi]
test ax, ax
jne 0x671fc4d0
mov ecx, esi
sub ecx, edx
sar ecx, 1
mov dword [esp + 0x50], ecx
cmp ecx, 0xffff
ja 0x671fdf28
mov ecx, dword [esp + 0x40]
cmp word [esi], 0x29
jne 0x671fdf70
xor edi, edi
mov esi, 0x673c5a20
cmp ebx, dword [esi]
jne 0x671fc523
push ebx
push ebp
push ecx
call fcn.67226460
add esp, 0xc
test eax, eax
je 0x671fc53c
inc ebp
inc edi
add ebp, dword [esi]
add esi, 0xc
cmp esi, str._b__w_
jge 0x671fdf5d
mov ecx, dword [esp + 0x40]
jmp 0x671fc510
lea eax, [edi + edi*2]
mov ecx, dword [eax*4 + 0x673c5a24]
cmp ecx, 0x9e
jne 0x671fc5dd
cmp dword [esp + 0x50], 0
jne 0x671fdf37
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x24]
mov dword [eax + 0x6c], 1
test ecx, ecx
je 0x671fc5a1
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x671fc57c
add dword [eax], 3
jmp 0x671fc59b
mov edx, dword [esp + 0x14]
mov eax, 0xa0
mov word [edx], ax
mov ax, word [ecx + 4]
mov word [edx + 2], ax
add edx, 4
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], edx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x671fc573
mov ecx, dword [esp + 0x18]
xor eax, eax
mov edx, dword [esp + 0x14]
cmp dword [ecx + 0x5c], eax
setg al
add eax, 0x9e
movzx eax, ax
mov word [edx], ax
mov edi, eax
add edx, 2
cmp dword [esp + 0x44], 0xfffffffe
mov dword [esp + 0x14], edx
jne 0x671fc665
mov dword [esp + 0x44], 0xffffffff
jmp 0x671fc665
mov edx, dword [esp + 0x50]
test edx, edx
jne 0x671fc5f8
test ecx, ecx
js 0x671fdf4a
mov edx, dword [esp + 0x14]
movzx eax, cx
mov edi, eax
jmp 0x671fc657
cmp dword [eax*4 + 0x673c5a28], 0
jl 0x671fdf37
mov ecx, dword [esp + 0x14]
movzx eax, word [eax*4 + 0x673c5a28]
mov ebx, dword [esp + 0x4c]
mov edi, eax
mov word [ecx], ax
add ecx, 2
mov dword [esp + 0x14], ecx
test ebx, ebx
je 0x671fc634
add dword [ebx], edx
xor eax, eax
mov edx, ecx
mov word [edx], ax
add edx, 2
jmp 0x671fc655
lea esi, [edx + edx]
mov word [ecx], dx
push esi
push dword [esp + 0x5c]
add ecx, 2
push ecx
mov dword [esp + 0x20], ecx
call fcn.67226d54
mov edx, dword [esp + 0x20]
add esp, 0xc
add edx, esi
xor eax, eax
mov ecx, dword [esp + 0x18]
mov word [edx], ax
add edx, 2
mov dword [esp + 0x14], edx
lea eax, [edi - 0x96]
cmp eax, 5
ja case.default.0x671fc674
jmp dword [eax*4 + 0x671fe39c]
mov esi, dword [esp + 0x10]
or dword [ecx + 0x64], 0x1000
add esi, 2
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
add esi, 2
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x70], 1
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], 0
mov edi, dword [ecx + 0x20]
sub edi, dword [ecx + 0x10]
sar edi, 1
mov dword [esp + 0x38], 0x85
mov dword [esp + 0x78], edi
mov dword [esp + 0x58], 0
cmp edx, 0x3f
jne 0x671fcfd6
add esi, 2
mov dword [esp + 0x10], esi
movzx edx, word [esi]
lea eax, [edx - 0x21]
cmp eax, 0x5b
ja case.0x671fc717.34
movzx eax, byte [eax + 0x671fe3ec]
jmp dword [eax*4 + 0x671fe3b4]
mov dword [esp + 0x58], 1
mov dword [ecx + 0x7c], 1
add esi, 2
mov ebx, 0x83
mov dword [esp + 0x10], esi
jmp 0x671fd2fc
cmp word [esi + 2], 0x3f
mov ebx, 0x87
mov edx, esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x8c], edx
jne 0x671fc7a3
cmp word [esi + 4], 0x43
jne 0x671fc7a3
movzx eax, word [esi + 6]
mov ecx, 3
cmp eax, 0x30
jb 0x671fc781
lea esp, [esp]
cmp ax, 0x39
ja 0x671fc781
movzx eax, word [esi + ecx*2 + 2]
inc ecx
cmp eax, 0x30
jae 0x671fc770
cmp word [esi + ecx*2], 0x29
jne 0x671fc795
lea edx, [ecx + 1]
lea edx, [esi + edx*2]
mov dword [esp + 0x8c], edx
cmp word [edx], 0x28
jne 0x671fdf7f
mov ecx, dword [esp + 0x18]
cmp word [edx + 2], 0x3f
jne 0x671fc7da
movzx eax, word [edx + 4]
cmp eax, 0x3d
je 0x671fc7cb
cmp eax, 0x21
je 0x671fc7cb
cmp eax, 0x3c
jne 0x671fc7da
movzx eax, word [edx + 6]
cmp eax, 0x3d
je 0x671fc7cb
cmp eax, 0x21
jne 0x671fc7da
mov dword [ecx + 0x80], 1
jmp 0x671fd2fc
mov eax, 0x8d
mov dword [esp + 0x2c], 2
mov word [ebp + 4], ax
or edi, 0xffffffff
mov esi, dword [esp + 0x10]
or ebx, edi
add esi, 2
mov dword [esp + 0x50], ebx
mov dword [esp + 0x10], esi
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x5c], ecx
movzx eax, word [esi]
cmp eax, 0x52
jne 0x671fc832
cmp word [esi + 2], 0x26
jne 0x671fc832
mov eax, dword [esp + 0x14]
or ebp, edi
add esi, 4
mov ecx, 0x8f
mov dword [esp + 0x10], esi
mov word [eax + 4], cx
mov esi, dword [esp + 0x10]
jmp 0x671fc847
cmp eax, 0x3c
jne 0x671fc909
mov ebp, 0x3e
add esi, 2
mov dword [esp + 0x10], esi
mov dword [esp + 0x40], ebp
movzx eax, word [esi]
cmp eax, 0x30
jb 0x671fc85c
cmp eax, 0x39
jbe 0x671fdfba
mov ecx, 0xff
cmp ax, cx
ja 0x671fdf7f
mov ebx, dword [esp + 0x18]
movzx ecx, ax
mov eax, dword [ebx + 0xc]
test byte [ecx + eax], 0x10
je 0x671fdf7f
mov ecx, esi
add esi, 2
mov dword [esp + 0x10], esi
mov dword [esp + 0x5c], ecx
movzx eax, word [esi]
cmp ax, word [esp + 0xe0]
ja 0x671fc8bc
mov ecx, dword [ebx + 0xc]
mov ebx, 0xff
movzx eax, ax
test byte [eax + ecx], 0x10
je 0x671fc8b8
add esi, 2
mov dword [esp + 0x10], esi
movzx eax, word [esi]
cmp ax, bx
jbe 0x671fc8a0
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x2c]
mov ebx, esi
sub ebx, ecx
mov ecx, dword [esp + 0x4c]
sar ebx, 1
test ecx, ecx
mov dword [esp + 0x50], ebx
cmovne eax, dword [esp + 0xf8]
mov dword [esp + 0x2c], eax
test ebp, ebp
jle 0x671fc985
mov ax, word [esi]
add esi, 2
mov dword [esp + 0x10], esi
cmp ax, bp
je 0x671fc985
mov eax, dword [esp + 0x1c]
sub esi, 2
mov dword [eax], 0x1a
jmp 0x671fe209
cmp eax, 0x27
jne 0x671fc915
mov ebp, eax
jmp 0x671fc840
xor ebp, ebp
mov dword [esp + 0x40], ebp
cmp eax, 0x2d
je 0x671fc93b
cmp eax, 0x2b
je 0x671fc93b
cmp eax, 0x30
jb 0x671fc85c
cmp eax, 0x39
ja 0x671fc84b
xor edi, edi
jmp 0x671fc94c
mov edi, eax
add esi, 2
mov dword [esp + 0x10], esi
test edi, edi
js 0x671fc84b
movzx eax, word [esi]
cmp eax, 0x30
jb 0x671fc981
cmp ax, 0x39
ja 0x671fc981
cmp edx, 0xccccccb
jg 0x671fdf8e
movzx eax, ax
lea edx, [edx + edx*4]
add esi, 2
lea edx, [edx - 0x18]
mov dword [esp + 0x10], esi
lea edx, [eax + edx*2]
movzx eax, word [esi]
cmp eax, 0x30
jae 0x671fc954
mov ecx, dword [esp + 0x4c]
mov ax, word [esi]
add esi, 2
mov dword [esp + 0x10], esi
cmp ax, 0x29
jne 0x671fc8f7
test ecx, ecx
jne 0x671fd2f4
test edi, edi
js 0x671fc9fd
test edx, edx
jle 0x671fdfc9
mov ecx, dword [esp + 0x18]
test edi, edi
je 0x671fc9c7
cmp edi, 0x2d
jne 0x671fc9c4
mov eax, dword [ecx + 0x40]
sub eax, edx
lea edx, [eax + 1]
jmp 0x671fc9c7
add edx, dword [ecx + 0x40]
test edx, edx
jle 0x671fdfdc
cmp edx, dword [ecx + 0x44]
jg 0x671fdfdc
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x30]
mov word [edi + 6], dx
mov esi, dword [esp + 0x10]
cmp edx, dword [ecx + 0x4c]
jle 0x671fd304
mov dword [ecx + 0x4c], edx
jmp 0x671fd304
mov ecx, dword [esp + 0x18]
xor edi, edi
mov edx, dword [ecx + 0x2c]
mov dword [esp + 0x88], edx
cmp dword [ecx + 0x30], edi
jle 0x671fca4e
mov ebp, dword [esp + 0x5c]
push ebx
lea eax, [edx + 2]
push eax
push ebp
call fcn.672264a0
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x88]
test eax, eax
je 0x671fca46
mov eax, dword [ecx + 0x34]
inc edi
lea edx, [edx + eax*2]
mov dword [esp + 0x88], edx
cmp edi, dword [ecx + 0x30]
jl 0x671fca16
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x40]
mov eax, dword [ecx + 0x30]
cmp edi, eax
jge 0x671fcb01
movzx ebx, word [edx]
mov ebp, edi
inc edi
mov dword [esp + 0x40], ebp
mov esi, 1
mov dword [esp + 0x94], ebx
cmp ebx, dword [ecx + 0x4c]
jle 0x671fca77
mov dword [ecx + 0x4c], ebx
cmp edi, eax
jge 0x671fcaec
mov ebp, dword [esp + 0x50]
mov ebx, dword [esp + 0x5c]
mov eax, dword [ecx + 0x34]
push ebp
lea edx, [edx + eax*2]
lea eax, [edx + 2]
mov dword [esp + 0x8c], edx
push eax
push ebx
call fcn.672264a0
mov ecx, dword [esp + 0x24]
add esp, 0xc
test eax, eax
jne 0x671fcabb
mov edx, dword [esp + 0x88]
cmp word [edx + ebp*2 + 2], ax
jne 0x671fcabb
inc edi
inc esi
cmp edi, dword [ecx + 0x30]
jl 0x671fca83
mov ebx, dword [esp + 0x94]
mov ebp, dword [esp + 0x40]
cmp esi, 1
jle 0x671fcaec
mov edi, dword [esp + 0x14]
inc dword [esp + 0x2c]
mov ebx, dword [esp + 0x38]
inc word [edi + 4]
mov word [edi + 6], bp
mov word [edi + 8], si
mov esi, dword [esp + 0x10]
jmp 0x671fd300
mov edi, dword [esp + 0x14]
mov word [edi + 6], bx
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x38]
jmp 0x671fd300
test ebp, ebp
jne 0x671fdfdc
mov eax, dword [esp + 0x5c]
cmp word [eax], 0x52
jne 0x671fcb7f
lea edx, [ebp + 1]
xor ecx, ecx
cmp ebx, edx
jle 0x671fcb58
lea esp, [esp]
movzx eax, word [eax + edx*2]
cmp eax, 0x30
jb 0x671fdfdc
cmp eax, 0x39
ja 0x671fdfdc
cmp ecx, 0xccccccb
jg 0x671fdfab
lea ecx, [ecx + ecx*4]
inc edx
lea ecx, [ecx - 0x18]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x5c]
cmp edx, ebx
jl 0x671fcb20
test ecx, ecx
jne 0x671fcb5d
mov ecx, 0xffff
mov edi, dword [esp + 0x14]
mov eax, 0x8f
mov ebx, dword [esp + 0x38]
mov word [edi + 6], cx
mov ecx, dword [esp + 0x18]
mov word [edi + 4], ax
mov esi, dword [esp + 0x10]
jmp 0x671fd300
cmp ebx, 6
jne 0x671fdfdc
push ebx
push str.DEFINE
push eax
call fcn.67226460
add esp, 0xc
test eax, eax
jne 0x671fdfd8
mov edi, dword [esp + 0x14]
lea edx, [ebx - 5]
mov ebx, dword [esp + 0x38]
mov eax, 0x91
mov ebp, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov word [edi + 4], ax
mov esi, dword [esp + 0x10]
jmp 0x671fd308
inc dword [ecx + 0x5c]
mov ebx, 0x7d
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x671fd2fc
add esi, 2
mov dword [esp + 0x10], esi
cmp word [esi], 0x29
jne 0x671fcc42
movzx eax, word [esi + 2]
cmp eax, 0x2a
je 0x671fcc42
cmp eax, 0x2b
je 0x671fcc42
cmp eax, 0x3f
je 0x671fcc42
cmp eax, 0x7b
jne 0x671fcc11
lea eax, [esi + 4]
push eax
call fcn.671ffc80
mov ecx, dword [esp + 0x1c]
add esp, 4
test eax, eax
jne 0x671fcc42
mov edx, dword [esp + 0x14]
mov eax, 0x9d
mov edi, dword [esp + 0x24]
mov word [edx], ax
add edx, 2
mov esi, dword [esp + 0x10]
xor ebp, ebp
mov eax, dword [esp + 0x34]
add esi, 2
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
inc dword [ecx + 0x5c]
mov ebx, 0x7e
jmp 0x671fd2fc
movzx eax, word [esi + 2]
mov ecx, eax
cmp ecx, 0x21
je 0x671fcc9f
cmp ecx, 0x3d
je 0x671fcc87
mov ebx, 0xff
cmp ax, bx
ja 0x671fdfeb
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
test byte [ecx + eax], 0x10
je 0x671fdfeb
mov ecx, dword [esp + 0x18]
jmp 0x671fcda2
mov ecx, dword [esp + 0x18]
mov ebx, 0x7f
inc dword [ecx + 0x5c]
add esi, 4
mov dword [esp + 0x10], esi
jmp 0x671fd2fc
mov ecx, dword [esp + 0x18]
mov ebx, 0x80
inc dword [ecx + 0x5c]
add esi, 4
mov dword [esp + 0x10], esi
jmp 0x671fd2fc
add esi, 2
mov ebx, 0x81
mov dword [esp + 0x10], esi
jmp 0x671fd2fc
mov edx, dword [esp + 0x14]
mov eax, 0x76
xor ecx, ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0xb4], 1
mov word [edx], ax
mov esi, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x10], esi
movzx eax, word [esi]
cmp eax, 0x30
jb 0x671fcd21
jmp 0x671fcd00
cmp ax, 0x39
ja 0x671fcd21
movzx eax, ax
lea ecx, [ecx + ecx*4]
add esi, 2
lea ecx, [ecx - 0x18]
mov dword [esp + 0x10], esi
lea ecx, [eax + ecx*2]
movzx eax, word [esi]
cmp eax, 0x30
jae 0x671fcd00
cmp word [esi], 0x29
jne 0x671fe00c
cmp ecx, 0xff
jg 0x671fdffd
mov edi, dword [esp + 0x24]
mov word [edx + 2], cx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
sub eax, dword [ecx + 0x18]
sar eax, 1
inc eax
mov word [edx + 4], ax
xor eax, eax
mov word [edx + 6], ax
add edx, 8
mov esi, dword [esp + 0x10]
xor ebp, ebp
mov eax, dword [esp + 0x34]
add esi, 2
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
add esi, 2
mov dword [esp + 0x10], esi
movzx edx, word [esi]
cmp edx, 0x3d
je 0x671fce89
cmp edx, 0x3e
je 0x671fce89
cmp edx, 0x3c
jne 0x671fe01b
mov ebx, 0xff
cmp dx, 0x3c
mov eax, 0x3e
mov edi, 0x27
cmove edi, eax
add esi, 2
mov dword [esp + 0x10], esi
mov edx, esi
mov dword [esp + 0x40], edx
movzx eax, word [esi]
cmp eax, 0x30
jb 0x671fcdd1
cmp eax, 0x39
jbe 0x671fdfba
cmp ax, bx
ja 0x671fcdf8
mov ecx, dword [ecx + 0xc]
lea esp, [esp]
movzx eax, ax
test byte [eax + ecx], 0x10
je 0x671fcdf8
add esi, 2
mov dword [esp + 0x10], esi
movzx eax, word [esi]
cmp ax, bx
jbe 0x671fcde0
mov ebp, esi
sub ebp, edx
sar ebp, 1
cmp dword [esp + 0x4c], 0
je 0x671fcf67
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0x40]
inc eax
mov dword [esp + 0x50], eax
cmp word [esi], di
jne 0x671fe081
mov ecx, dword [ebx + 0x30]
cmp ecx, 0x2710
jge 0x671fe072
lea eax, [ebp + 2]
cmp eax, dword [ebx + 0x34]
jle 0x671fce41
mov dword [ebx + 0x34], eax
cmp ebp, 0x20
jg 0x671fe02a
mov edi, dword [ebx + 0x28]
xor ebx, ebx
test ecx, ecx
jle 0x671fcec1
lea ebx, [ebx]
cmp ebp, dword [edi + 4]
jne 0x671fce9f
push ebp
push dword [edi]
push edx
call fcn.672264a0
add esp, 0xc
test eax, eax
jne 0x671fce9f
mov eax, dword [esp + 0x50]
cmp dword [edi + 8], eax
je 0x671fcebd
test dword [esp + 0x48], 0x80000
je 0x671fe039
mov eax, dword [esp + 0x18]
mov dword [eax + 0x78], 1
jmp 0x671fceb0
xor ebx, ebx
mov ebp, 0x29
cmp edx, 0x3e
sete bl
mov dword [esp + 0x38], ebx
jmp 0x671fd6c3
mov eax, dword [esp + 0x50]
cmp dword [edi + 8], eax
je 0x671fe04c
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x40]
inc ebx
add edi, 0xc
cmp ebx, dword [eax + 0x30]
jl 0x671fce50
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x30]
cmp ebx, eax
jl 0x671fcf6b
mov ecx, dword [ecx + 0x38]
cmp eax, ecx
jl 0x671fcf28
lea edi, [ecx + ecx]
lea eax, [edi + edi*2]
shl eax, 2
push eax
call dword [0x67463170]
mov esi, eax
add esp, 4
test esi, esi
je 0x671fe05f
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebx + 0x38]
lea ecx, [ecx + ecx*2]
shl ecx, 2
push ecx
push dword [ebx + 0x28]
push esi
call fcn.67226d54
add esp, 0xc
cmp dword [ebx + 0x38], 0x14
jle 0x671fcf20
push dword [ebx + 0x28]
call dword [0x67463174]
add esp, 4
mov dword [ebx + 0x28], esi
mov dword [ebx + 0x38], edi
jmp 0x671fcf2c
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0x30]
mov edx, dword [esp + 0x40]
lea ecx, [eax + eax*2]
mov eax, dword [ebx + 0x28]
mov dword [eax + ecx*4], edx
mov eax, dword [ebx + 0x30]
mov edx, dword [esp + 0x50]
lea ecx, [eax + eax*2]
mov eax, dword [ebx + 0x28]
mov dword [eax + ecx*4 + 4], ebp
mov eax, dword [ebx + 0x30]
lea ecx, [eax + eax*2]
mov eax, dword [ebx + 0x28]
mov dword [eax + ecx*4 + 8], edx
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
inc dword [ecx + 0x30]
jmp 0x671fcf6b
mov ecx, dword [esp + 0x18]
add esi, 2
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0x14]
mov edx, 1
inc dword [ecx + 0x40]
mov ax, word [ecx + 0x40]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x30]
mov word [edi + 4], ax
mov esi, dword [esp + 0x10]
jmp 0x671fd308
mov ebx, 1
mov ebp, 0x29
mov dword [esp + 0x38], ebx
jmp 0x671fd6c3
add esi, 2
xor edi, edi
mov dword [esp + 0x10], esi
cmp word [esi], 0x29
je 0x671fd94c
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x1d
jmp 0x671fe209
mov ebp, 0x29
jmp 0x671fd13a
test ebx, 0x1000
je 0x671fcf72
mov ebx, 0x83
jmp 0x671fd2fc
mov ebx, dword [esp + 0x1c]
lea eax, [esp + 0xbc]
push 0
push dword [esp + 0x4c]
mov dword [esp + 0x94], esi
push dword [edi + 0x40]
push ebx
push eax
lea eax, [esp + 0x24]
push eax
call fcn.671f8a50
add esp, 0x18
mov edi, eax
cmp dword [ebx], 0
jne 0x671fde8e
test edi, edi
jne 0x671fd067
cmp dword [esp + 0x54], eax
mov eax, dword [esp + 0xbc]
je 0x671fd051
cmp eax, 0xffff
jbe 0x671fd051
lea ecx, [esp + 0x120]
push ecx
push eax
call fcn.67226660
mov edx, dword [esp + 0x1c]
add esp, 8
mov edi, eax
jmp 0x671fa605
mov edx, dword [esp + 0x14]
mov edi, 1
mov word [esp + 0x120], ax
jmp 0x671fa605
mov ecx, dword [esp + 0x44]
cmp ecx, 0xfffffffe
jne 0x671fd082
lea eax, [edi - 6]
cmp eax, 0x10
mov eax, 0xffffffff
cmovbe ecx, eax
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x74], eax
cmp edi, 0x1b
jne 0x671fd671
mov ecx, dword [esp + 0x18]
mov ebp, 0x27
mov esi, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x10], esi
mov eax, dword [ecx + 0x20]
sub eax, dword [ecx + 0x10]
sar eax, 1
cmp word [esi], 0x3c
mov dword [esp + 0x78], eax
mov eax, 0x3e
cmove ebp, eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x58], eax
movzx eax, word [esi + 2]
cmp eax, 0x2b
je 0x671fd10c
cmp eax, 0x2d
je 0x671fd10c
cmp eax, 0x30
jb 0x671fd0fe
cmp eax, 0x39
jbe 0x671fd10c
mov ebx, 1
mov dword [esp + 0x38], ebx
jmp 0x671fd6c3
movzx eax, word [esi + 4]
lea ecx, [esi + 4]
cmp eax, 0x30
jb 0x671fd12a
cmp ax, 0x39
ja 0x671fd12a
movzx eax, word [ecx + 2]
add ecx, 2
cmp eax, 0x30
jae 0x671fd118
cmp word [ecx], bp
jne 0x671fe138
add esi, 2
mov dword [esp + 0x10], esi
movzx edx, word [esi]
mov ebx, edx
cmp ebx, 0x2b
jne 0x671fd1d0
add esi, 2
mov dword [esp + 0x10], esi
movzx eax, word [esi]
cmp eax, 0x30
jb 0x671fe090
cmp eax, 0x39
ja 0x671fe090
movzx eax, word [esi]
xor edi, edi
cmp eax, 0x30
jb 0x671fd19d
mov edi, edi
cmp ax, 0x39
ja 0x671fd19d
cmp edi, 0xccccccb
jg 0x671fe0f5
movzx eax, ax
lea edi, [edi + edi*4]
add esi, 2
lea edi, [edi - 0x18]
mov dword [esp + 0x10], esi
lea edi, [eax + edi*2]
movzx eax, word [esi]
cmp eax, 0x30
jae 0x671fd170
cmp word [esi], bp
jne 0x671fcfbd
cmp ebx, 0x2d
jne 0x671fd654
test edi, edi
je 0x671fe129
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x40]
sub eax, edi
lea edi, [eax + 1]
test edi, edi
jle 0x671fdfdc
jmp 0x671fd94c
cmp ebx, 0x2d
jne 0x671fd164
movzx eax, word [esi + 2]
cmp eax, 0x30
jb 0x671fd1ef
cmp eax, 0x39
ja 0x671fd1ef
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x671fd164
mov ebx, dword [esp + 0x48]
xor eax, eax
lea ecx, [esp + 0x50]
xor ebp, ebp
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], ebp
cmp dx, 0x29
je 0x671fd282
lea ecx, [ecx]
cmp dx, 0x3a
je 0x671fd27a
movzx eax, dx
add esi, 2
sub eax, 0x2d
mov dword [esp + 0x10], esi
cmp eax, 0x4b
ja case.0x671fd233.46
movzx eax, byte [eax + 0x671fe46c]
jmp dword [eax*4 + 0x671fe448]
lea ecx, [esp + 0x40]
jmp 0x671fd272
mov eax, dword [esp + 0x18]
or dword [ecx], 0x80000
or dword [eax + 0x64], 0x400
jmp 0x671fd272
or dword [ecx], 1
jmp 0x671fd272
or dword [ecx], 2
jmp 0x671fd272
or dword [ecx], 4
jmp 0x671fd272
or dword [ecx], 8
jmp 0x671fd272
or dword [ecx], 0x200
jmp 0x671fd272
or dword [ecx], 0x40
movzx edx, word [esi]
cmp edx, 0x29
jne 0x671fd210
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
or ebp, ebx
not eax
and ebp, eax
cmp word [esi], 0x29
jne 0x671fd2e2
mov edx, dword [esp + 0x14]
mov eax, ebp
mov edi, dword [esp + 0x24]
shr eax, 9
and eax, 1
mov dword [esp + 0x48], ebp
mov dword [esp + 0xc4], eax
xor eax, 1
mov dword [esp + 0xd0], eax
mov eax, ebp
and eax, 1
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xe8]
mov dword [eax], ebp
xor ebp, ebp
mov eax, dword [esp + 0x34]
add esi, 2
mov dword [esp + 0x28], ebp
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov edi, dword [esp + 0x14]
add esi, 2
mov ebx, 0x83
mov dword [esp + 0x10], esi
jmp 0x671fd304
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
inc dword [ecx + 0x58]
cmp dword [ecx + 0x58], 0xfa
jg 0x671fe0e6
lea eax, [ebx - 0x7d]
cmp eax, 3
ja 0x671fd33d
cmp dword [ecx + 0x80], 0
je 0x671fd33d
mov dword [esp + 0x28], 0
mov dword [ecx + 0x80], 0
jmp 0x671fd34d
mov eax, dword [ecx + 0x20]
sub eax, dword [ecx + 0x10]
sar eax, 1
mov dword [esp + 0x28], edi
mov dword [esp + 0x78], eax
mov word [edi], bx
mov esi, dword [ecx + 0x40]
mov dword [esp + 0x60], edi
mov edi, dword [ecx + 0x68]
mov dword [esp + 0x9c], 0
cmp ebx, 0x7f
je 0x671fd376
cmp ebx, 0x80
je 0x671fd376
xor ecx, ecx
jmp 0x671fd37b
mov ecx, 1
cmp dword [esp + 0x4c], 0
lea eax, [esp + 0x9c]
mov dword [esp + 0x94], 0
cmove eax, dword [esp + 0x94]
push eax
push dword [esp + 0x1c]
lea eax, [esp + 0xac]
push dword [esp + 0xd0]
push eax
lea eax, [esp + 0xc0]
push eax
lea eax, [esp + 0xc0]
push eax
lea eax, [esp + 0xe4]
push eax
xor eax, eax
cmp ebx, 0x87
sete al
add eax, dword [esp + 0x1a4]
push eax
push edx
push dword [esp + 0x7c]
lea eax, [esp + 0x38]
push ecx
push dword [esp + 0x48]
push eax
lea eax, [esp + 0x94]
push eax
push ebp
call fcn.671fe4c0
add esp, 0x3c
test eax, eax
je 0x671fde8e
mov eax, dword [esp + 0x18]
dec dword [eax + 0x58]
cmp ebx, 0x81
jne 0x671fd4ad
cmp dword [eax + 0x40], esi
ja 0x671fd425
mov eax, dword [esp + 0x14]
mov ecx, 0x82
mov word [eax], cx
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xac]
mov esi, dword [esp + 0x10]
cmp word [esi], 0x29
jne 0x671fe0d7
cmp dword [esp + 0x4c], 0
je 0x671fd534
mov ebx, dword [esp + 0x4c]
mov eax, 0x7fffffeb
mov edi, dword [esp + 0x9c]
mov edx, dword [ebx]
sub eax, edx
lea ecx, [edi - 4]
cmp eax, ecx
jl 0x671fde48
mov ebp, dword [esp + 0x28]
lea eax, [edi - 4]
mov edi, dword [esp + 0x24]
add eax, edx
mov edx, dword [esp + 0x14]
mov ecx, 2
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 2], 0x780002
mov word [edx + 6], cx
add edx, 8
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
add esi, 2
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
cmp ebx, 0x7d
jl 0x671fd4bd
cmp ebx, 0x80
jg 0x671fd4bd
dec dword [eax + 0x5c]
cmp ebx, 0x87
jne 0x671fd425
cmp dword [esp + 0x4c], 0
jne 0x671fd425
mov esi, dword [esp + 0x14]
xor edx, edx
mov ecx, esi
lea esp, [esp]
movzx eax, word [ecx + 2]
inc edx
cmp word [ecx + eax*2], 0x78
lea ecx, [ecx + eax*2]
jne 0x671fd4e0
mov eax, 0x91
cmp word [esi + 4], ax
jne 0x671fd50a
cmp edx, 1
jg 0x671fe0b1
mov ebx, eax
jmp 0x671fd425
cmp edx, 2
jg 0x671fe0c4
cmp edx, 1
jne 0x671fd425
or eax, 0xffffffff
or ecx, eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xac], ecx
jmp 0x671fd433
mov edx, dword [esp + 0x60]
mov dword [esp + 0x14], edx
cmp ebx, 0x91
je 0x671fd604
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x70], ebp
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x74], ebp
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x90], ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x84], ebp
mov dword [esp + 0xa8], 0
cmp ebx, 0x81
jl 0x671fd620
cmp ebp, 0xfffffffe
jne 0x671fd5d0
test ecx, ecx
js 0x671fd5bb
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x44], ecx
mov dword [esp + 0xa8], 1
mov dword [esp + 0x84], 0xffffffff
jmp 0x671fd5f1
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x84], 0xffffffff
jmp 0x671fd5f1
test ecx, ecx
js 0x671fd5f1
test eax, eax
jns 0x671fd5f5
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xb0], eax
mov eax, ecx
or eax, edi
mov dword [esp + 0xa4], eax
test eax, eax
js 0x671fd604
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x18]
add esi, 2
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
cmp ebx, 0x7d
jne 0x671fd604
test eax, eax
js 0x671fd604
mov ecx, dword [esp + 0xb0]
add esi, 2
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
cmp ebx, 0x2b
jne 0x671fd948
test edi, edi
je 0x671fe129
mov ecx, dword [esp + 0x18]
add edi, dword [ecx + 0x40]
jmp 0x671fd94c
cmp edi, 0x1c
jne 0x671fdadd
mov esi, dword [esp + 0x10]
movzx eax, word [esi + 2]
cmp eax, 0x3c
je 0x671fd695
cmp eax, 0x27
je 0x671fd695
cmp eax, 0x7b
jne 0x671fe143
mov ecx, dword [esp + 0x18]
add esi, 2
mov dword [esp + 0x10], esi
xor ebx, ebx
mov dword [esp + 0x38], ebx
movzx eax, word [esi]
cmp eax, 0x3c
jne 0x671fd6b3
lea ebp, [ebx + 0x3e]
jmp 0x671fd6c3
cmp eax, 0x27
mov ebp, 0x7d
mov eax, 0x27
cmove ebp, eax
add esi, 2
mov dword [esp + 0x10], esi
mov edx, esi
mov dword [esp + 0x40], edx
movzx eax, word [esi]
cmp eax, 0x30
jb 0x671fd6e1
cmp eax, 0x39
jbe 0x671fdfba
mov edi, 0xff
cmp ax, di
ja 0x671fd708
mov ecx, dword [ecx + 0xc]
mov edi, edi
movzx eax, ax
test byte [eax + ecx], 0x10
je 0x671fd708
add esi, 2
mov dword [esp + 0x10], esi
movzx eax, word [esi]
cmp ax, di
jbe 0x671fd6f0
mov eax, dword [esp + 0x4c]
mov ecx, esi
sub ecx, edx
sar ecx, 1
mov dword [esp + 0x5c], ecx
test eax, eax
je 0x671fd8e0
xor edi, edi
mov dword [esp + 0x58], edi
test ecx, ecx
je 0x671fe14e
cmp word [esi], bp
jne 0x671fe081
cmp ecx, 0x20
jg 0x671fe02a
mov ebp, dword [esp + 0x18]
test ebx, ebx
jne 0x671fd749
inc dword [ebp + 0x54]
add dword [eax], 9
mov eax, dword [eax]
cmp dword [ebp + 0x7c], edi
je 0x671fd75c
mov ebx, dword [esp + 0x4c]
add eax, 8
mov dword [ebx], eax
mov esi, dword [ebp + 0x28]
xor ebx, ebx
cmp dword [ebp + 0x30], ebx
mov ebp, dword [esp + 0x38]
jle 0x671fd7ce
mov eax, dword [esp + 0x18]
mov edi, edi
cmp ecx, dword [esi + 4]
jne 0x671fd7c5
push ecx
push dword [esi]
push edx
call fcn.672264a0
add esp, 0xc
test eax, eax
jne 0x671fd7b9
mov edi, dword [esi + 8]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x58], edi
test ebp, ebp
jne 0x671fd94c
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je 0x671fd7b9
nop
movzx eax, word [ecx + 4]
cmp eax, edi
je 0x671fd7b0
mov ecx, dword [ecx]
test ecx, ecx
jne 0x671fd7a0
jmp 0x671fd7b9
mov eax, 1
mov word [ecx + 6], ax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x5c]
inc ebx
add esi, 0xc
cmp ebx, dword [eax + 0x30]
jl 0x671fd770
mov ecx, dword [esp + 0x18]
test ebp, ebp
jne 0x671fd94c
cmp dword [esp + 0x4c], ebp
jne 0x671fdae7
cmp dword [ecx + 0x78], ebp
je 0x671fdae7
mov eax, dword [ecx + 0x34]
lea esi, [ebp + 1]
mov edx, dword [esp + 0x88]
mov ebp, ebx
inc ebx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x94], ebx
lea eax, [edx + eax*2]
mov dword [esp + 0x50], eax
cmp ebx, dword [ecx + 0x30]
jge 0x671fdae7
mov ebp, dword [esp + 0x94]
lea ebx, [edx + 2]
mov edi, eax
lea eax, [edi + 2]
push eax
push ebx
call fcn.67226400
mov ecx, dword [esp + 0x20]
add esp, 8
test eax, eax
jne 0x671fd846
mov eax, dword [ecx + 0x34]
inc ebp
inc esi
lea edi, [edi + eax*2]
cmp ebp, dword [ecx + 0x30]
jl 0x671fd824
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x58]
cmp esi, 1
jle 0x671fdae7
mov eax, dword [esp + 0x44]
mov edx, 0xffffffff
mov ebx, dword [esp + 0x50]
cmp eax, 0xfffffffe
cmove eax, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x20]
sub eax, dword [ecx + 0x10]
sar eax, 1
test byte [esp + 0x48], 1
mov dword [esp + 0x78], eax
mov eax, 0
setne al
mov dword [esp + 0x28], edx
add eax, 0x73
mov word [edx], ax
mov word [edx + 2], bp
mov word [edx + 4], si
add edx, 6
mov esi, dword [esp + 0x88]
mov dword [esp + 0x14], edx
cmp esi, ebx
jae case.default.0x671fc674
jmp 0x671fd8c0
movzx edx, word [esi]
cmp edx, 0x20
jge 0x671fda71
mov ebp, 1
mov ecx, edx
mov eax, ebp
shl eax, cl
mov ecx, dword [esp + 0x18]
jmp 0x671fda78
mov ebp, dword [esp + 0x18]
xor ebx, ebx
mov edi, dword [ebp + 0x2c]
mov dword [esp + 0x88], edi
cmp dword [ebp + 0x30], ebx
jle 0x671fd92d
push ecx
lea eax, [edi + 2]
push eax
push edx
call fcn.672264a0
mov ecx, dword [esp + 0x68]
add esp, 0xc
test eax, eax
jne 0x671fd912
cmp word [edi + ecx*2 + 2], ax
je 0x671fd922
mov eax, dword [ebp + 0x34]
inc ebx
mov edx, dword [esp + 0x40]
lea edi, [edi + eax*2]
cmp ebx, dword [ebp + 0x30]
jl 0x671fd8f5
mov esi, dword [esp + 0x10]
mov dword [esp + 0x88], edi
mov ecx, ebp
cmp ebx, dword [ecx + 0x30]
jge 0x671fdfdc
movzx edi, word [edi]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x58], edi
jmp 0x671fd7d2
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x20]
sub edx, dword [ecx + 0x10]
mov eax, dword [esp + 0x14]
mov ebp, eax
mov esi, dword [ecx + 0x14]
sar edx, 1
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x28], ebp
mov dword [esp + 0x78], edx
jne 0x671fda1f
mov ebx, dword [esp + 0x54]
xor edx, edx
mov word [eax], dx
test edi, edi
je 0x671fd992
push edi
push ebx
push dword [ecx + 0x14]
call fcn.671f7ac0
mov ecx, dword [esp + 0x24]
mov esi, eax
add esp, 0xc
mov eax, ebp
test esi, esi
jne 0x671fd9ef
cmp edi, dword [ecx + 0x44]
jg 0x671fe15d
mov eax, dword [ecx + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x3c]
lea esi, [eax + edi*2]
mov eax, dword [ebx + 0x10]
lea eax, [eax + ecx*2]
add eax, 0xffffff38
cmp dword [ebx + 0x20], eax
jb 0x671fd9d3
push ebx
call fcn.671fee70
mov ecx, dword [esp + 0x20]
add esp, 4
mov dword [ecx], eax
test eax, eax
jne 0x671fde8e
mov edx, dword [esp + 0x14]
mov ecx, edx
sub ecx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x20]
add ecx, 2
sar ecx, 1
mov word [eax], cx
mov ecx, ebx
add dword [ecx + 0x20], 2
jmp 0x671fda23
cmp word [esi + 2], 0
jne 0x671fda1f
cmp dword [esp + 0x188], 0
jg 0x671fda1f
push ecx
push ebx
push dword [esp + 0xd0]
push eax
push esi
call fcn.671fe970
add esp, 0x14
test eax, eax
jne 0x671fe170
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov eax, 0x75
mov dword [esp + 0xa8], 0
mov word [edx], ax
sub esi, dword [ecx + 0x14]
sar esi, 1
mov word [edx + 2], si
add edx, 4
cmp dword [esp + 0x44], 0xfffffffe
mov dword [esp + 0x14], edx
jne 0x671fde30
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
add esi, 2
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov eax, 1
mov ebp, eax
or dword [ecx + 0x50], eax
cmp edx, dword [ecx + 0x4c]
jle 0x671fda83
mov dword [ecx + 0x4c], edx
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je 0x671fdaa4
lea ebx, [ebx]
movzx eax, word [ecx + 4]
cmp eax, edx
je 0x671fdaa0
mov ecx, dword [ecx]
test ecx, ecx
jne 0x671fda90
jmp 0x671fdaa4
mov word [ecx + 6], bp
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x34]
lea esi, [esi + eax*2]
cmp esi, ebx
jb 0x671fd8c0
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x88], esi
mov esi, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
test edi, edi
jns 0x671fdbae
neg edi
mov ebx, dword [esp + 0x44]
mov eax, 0xffffffff
mov edx, dword [esp + 0x18]
cmp ebx, 0xfffffffe
mov ecx, dword [esp + 0x14]
mov ebp, ecx
cmove ebx, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x44], ebx
mov eax, dword [edx + 0x20]
sub eax, dword [edx + 0x10]
sar eax, 1
test byte [esp + 0x48], 1
mov dword [esp + 0x78], eax
mov eax, 0
setne al
add eax, 0x71
mov word [ecx], ax
mov word [ecx + 2], di
add ecx, 4
mov dword [esp + 0x14], ecx
cmp edi, 0x20
jge 0x671fdb44
mov ebx, 1
mov ecx, edi
mov eax, ebx
shl eax, cl
jmp 0x671fdb4b
mov eax, 1
mov ebx, eax
or dword [edx + 0x50], eax
cmp edi, dword [edx + 0x4c]
jle 0x671fdb56
mov dword [edx + 0x4c], edi
mov ecx, dword [edx + 0x24]
test ecx, ecx
je 0x671fdb6e
lea ecx, [ecx]
movzx eax, word [ecx + 4]
cmp eax, edi
je 0x671fdb8c
mov ecx, dword [ecx]
test ecx, ecx
jne 0x671fdb60
mov esi, dword [esp + 0x10]
mov ecx, edx
mov edx, dword [esp + 0x14]
add esi, 2
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov word [ecx + 6], bx
mov ecx, edx
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
cmp edi, 0xf
je 0x671fdc69
cmp edi, 0x10
je 0x671fdc69
cmp edi, 5
je 0x671fdbcf
cmp edi, 4
je 0x671fdbcf
cmp edi, 1
jne 0x671fdbe2
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x48], 0
jne 0x671fdbe6
mov dword [ecx + 0x48], 1
jmp 0x671fdbe6
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
lea esi, [edi - 0x1d]
cmp esi, 5
ja 0x671fdc1b
mov esi, dword [esi*4 + 0x674630d8]
mov eax, dword [esp + 0x10]
sub esi, 2
mov ebp, dword [esp + 0x28]
add eax, 2
mov edi, dword [esp + 0x24]
add esi, 2
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov ebx, dword [ecx + 0x20]
lea eax, [edi - 6]
xor ebp, ebp
cmp eax, 0x10
cmovbe ebp, edx
sub ebx, dword [ecx + 0x10]
sar ebx, 1
cmp dword [esp + 0x54], 0
mov dword [esp + 0x28], ebp
mov dword [esp + 0x78], ebx
jne 0x671fdc47
cmp edi, 0xe
jne 0x671fdc47
mov edi, 0xd
mov eax, dword [esp + 0x34]
mov word [edx], di
add edx, 2
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
add esi, 2
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
push ebx
lea eax, [esp + 0x54]
mov dword [esp + 0x5c], 0
push eax
lea eax, [esp + 0x60]
mov dword [esp + 0x58], 0
push eax
lea eax, [esp + 0x108]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.671ffa00
add esp, 0x14
test eax, eax
je 0x671fde8e
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebp, edx
mov dword [esp + 0x28], ebp
mov ecx, dword [eax + 0x20]
sub ecx, dword [eax + 0x10]
xor eax, eax
sar ecx, 1
cmp edi, 0x10
mov edi, dword [esp + 0x24]
sete al
mov dword [esp + 0x78], ecx
xor ecx, ecx
cmp eax, dword [esp + 0xfc]
movzx eax, word [esp + 0x58]
setne cl
add ecx, 0xf
mov word [edx], cx
mov ecx, dword [esp + 0x18]
mov word [edx + 2], ax
movzx eax, word [esp + 0x50]
mov word [edx + 4], ax
add edx, 6
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
add esi, 2
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
test bl, 1
mov eax, 0
setne al
xor ecx, ecx
add eax, 0x1d
mov word [edx], ax
add edx, 2
mov dword [esp + 0x14], edx
test edi, edi
je 0x671fdd47
jmp 0x671fdd30
mov ax, word [esp + ecx*2 + 0x120]
inc ecx
mov word [edx], ax
add edx, 2
cmp ecx, edi
jb 0x671fdd30
mov dword [esp + 0x14], edx
mov ax, word [esp + 0x120]
cmp ax, 0xd
je 0x671fdd5b
cmp ax, 0xa
jne 0x671fdd68
mov ecx, dword [esp + 0x18]
or dword [ecx + 0x64], 0x800
jmp 0x671fdd6c
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x44]
cmp ebx, 0xfffffffe
jne 0x671fdde6
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x84], 0xffffffff
mov dword [esp + 0x74], ebx
cmp edi, 1
je 0x671fddc7
cmp dword [esp + 0xa0], 0
je 0x671fddc7
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
add esi, 2
mov eax, dword [esp + 0x34]
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
movzx eax, ax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x44], eax
cmp edi, 1
je 0x671fde30
mov ebx, dword [ecx + 0x68]
jmp 0x671fde24
mov eax, dword [esp + 0x80]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ebx
cmp edi, 1
je 0x671fde1a
cmp dword [esp + 0xa0], 0
jne 0x671fde30
mov ebx, dword [ecx + 0x68]
or ebx, dword [esp + 0xa0]
movzx eax, word [edx - 2]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x7c], eax
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
add esi, 2
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], esi
jmp 0x671f9ff8
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x14
jmp 0x671fe209
mov ecx, dword [edx + 0x3c]
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x1c]
cmp edi, eax
sbb eax, eax
and eax, 0x23
add eax, 0x34
mov dword [ecx], eax
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x40
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x1e
mov esi, dword [esp + 0x10]
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x1f
jmp 0x671fe209
mov dword [ecx], 7
jmp 0x671fe209
mov esi, dword [esp + 0x10]
mov dword [ecx], 0x47
jmp 0x671fe209
mov dword [esi], 0x53
mov esi, dword [esp + 0x10]
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x53
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 8
jmp 0x671fe209
cmp word [esi + 2], 0x3a
mov ecx, 0xd
mov eax, 0x1f
cmove eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [ecx], eax
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0xb
jmp 0x671fe209
mov dword [ebx], 9
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x4b
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x3b
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x42
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x3c
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x3c
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x1c
jmp 0x671fe209
movzx eax, word [esi]
cmp eax, 0x30
jb 0x671fdfab
cmp ax, 0x39
ja 0x671fdfab
add esi, 2
mov dword [esp + 0x10], esi
movzx eax, word [esi]
cmp eax, 0x30
jae 0x671fdf96
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x3d
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x54
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x23
jmp 0x671fe209
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [eax], 0xf
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
add esi, 2
mov dword [eax], 0x18
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x26
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x27
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x29
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x30
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x2b
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x41
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x15
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x31
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x2a
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x3f
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
sub esi, 2
mov dword [eax], 0xc
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x36
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x1b
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0xe
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x52
jmp 0x671fe209
movzx eax, word [esi]
cmp eax, 0x30
jb 0x671fdfab
cmp ax, 0x39
ja 0x671fdfab
add esi, 2
mov dword [esp + 0x10], esi
movzx eax, word [esi]
cmp eax, 0x30
jae 0x671fe101
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x3d
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x3a
jmp 0x671fe209
mov dword [ebx], 0x39
jmp 0x671fe209
mov dword [ebx], 0x45
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x3e
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov dword [eax], 0xf
jmp 0x671fe209
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x28
jmp 0x671fe209
mov ecx, dword [esp + 0xf0]
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x4c]
mov dword [ecx], eax
mov ecx, dword [esp + 0xd8]
mov eax, dword [esp + 0x44]
mov dword [ecx], eax
mov ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0x7c]
mov dword [ecx], eax
mov ecx, dword [esp + 0xe4]
mov eax, dword [esp + 0x6c]
mov dword [ecx], eax
mov eax, dword [esp + 0xec]
mov dword [eax], ebp
mov dword [edi], esi
test edx, edx
je 0x671fe1f8
sub ebp, dword [esp + 0xb8]
mov ecx, 0x7fffffeb
mov eax, dword [edx]
sub ecx, eax
sar ebp, 1
cmp ecx, ebp
jge 0x671fe1f3
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x14
jmp 0x671fe20d
lea ecx, [eax + ebp]
mov dword [edx], ecx
mov eax, 1
jmp 0x671fe211
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x34
mov edi, dword [esp + 0x20]
mov dword [edi], esi
xor eax, eax
mov ecx, dword [esp + 0x15c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.67226d38
add esp, 0x150
ret