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

Disassembly:
sub esp, 0x114
movsd xmm2, qword [0x4e1198]
mov eax, ecx
mov ecx, dword [esp + 0x130]
push ebx
mov ebx, dword [esp + 0x11c]
push ebp
push esi
xor esi, esi
mov dword [esp + 0xd4], eax
mov eax, dword [eax]
xor ebp, ebp
mov dword [esp + 0xac], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0xa4], esi
mov dword [esp + 0x64], esi
mov esi, eax
shr esi, 9
and esi, 1
mov dword [esp + 0x48], eax
push edi
mov edi, dword [ebx]
and eax, 1
xor ebx, ebx
mov dword [esp + 0xb4], esi
xor esi, 1
mov dword [esp + 0xe4], edx
mov edx, dword [edx]
shl eax, 0x1c
mov dword [esp + 0x18], edx
mov dword [esp + 0xa4], edx
mov dword [esp + 0xac], edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x58], ebx
mov dword [esp + 0xb8], esi
mov dword [esp + 0x5c], 0xfffffffe
mov dword [esp + 0x34], 0xfffffffe
mov dword [esp + 0x3c], 0xfffffffe
mov dword [esp + 0x50], 0xfffffffe
mov dword [esp + 0x78], eax
mov dword [esp + 0xbc], 0xff
movsd qword [esp + 0xe8], xmm2
mov dword [esp + 0x14], edi
movzx esi, word [edi]
test esi, esi
jne 0x4ad3bb
test ebx, ebx
je 0x4ad3bb
mov edi, ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0x14], edi
movzx esi, word [edi]
mov ebx, dword [esp + 0x140]
mov ecx, dword [ecx + 0x34]
mov eax, dword [ebx + 0x10]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x144]
add eax, 0xffffff38
test ecx, ecx
je 0x4ad4a1
cmp edx, eax
ja 0x4b1bc6
mov eax, dword [esp + 0xa4]
cmp edx, eax
cmovae eax, edx
mov ecx, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x144]
sub ecx, dword [esp + 0xa4]
sar ecx, 1
mov edx, dword [eax]
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jl 0x4b1ba3
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x144]
mov dword [ecx], eax
test ebp, ebp
je 0x4ad480
cmp ebp, dword [esp + 0xac]
jbe 0x4ad494
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0xac]
sub eax, ebp
and eax, 0xfffffffe
push eax
push ebp
push edi
call sub.VCRUNTIME140.dll_memmove
mov edx, dword [esp + 0x24]
sub ebp, edi
movsd xmm2, qword [esp + 0xf4]
and ebp, 0xfffffffe
mov ecx, dword [esp + 0x150]
add esp, 0xc
sub edx, ebp
mov ebp, edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0xa4], edx
jmp 0x4ad4aa
mov edx, dword [esp + 0xac]
mov dword [esp + 0x18], edx
mov dword [esp + 0xa4], edx
jmp 0x4ad4aa
mov edx, dword [esp + 0x18]
mov dword [esp + 0xa4], edx
jmp 0x4ad4aa
cmp dword [ebx + 0x24], eax
ja 0x4b1bc6
cmp dword [esp + 0x64], 0
je 0x4ad55d
test esi, esi
je 0x4ad55d
cmp esi, 0x5c
jne 0x4ad4eb
cmp word [edi + 2], 0x45
jne 0x4ad4eb
movsd xmm2, qword [esp + 0xe8]
add edi, 2
mov ecx, ebx
mov dword [esp + 0x64], 0
mov ebx, dword [esp + 0x38]
add edi, 2
jmp 0x4ad39f
mov eax, dword [esp + 0x68]
test eax, eax
je 0x4ad510
test ecx, ecx
jne 0x4ad508
sub edi, dword [ebx + 0x18]
sar edi, 1
sub di, word [eax + 8]
mov word [eax + 0xa], di
mov edi, dword [esp + 0x14]
mov dword [esp + 0x68], 0
mov ecx, dword [esp + 0x4c]
test ecx, 0x4000
je 0x4ad84c
mov eax, 0x70
mov dword [esp + 0x68], edx
mov word [edx], ax
lea eax, [edx + 2]
mov edx, 0xff
mov dword [eax + 2], 0
mov word [eax], dx
sub edi, dword [ebx + 0x18]
sar edi, 1
xor edx, edx
mov word [eax + 8], dx
lea edx, [eax + 0xa]
mov word [eax + 6], di
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], edx
jmp 0x4ad84c
cmp esi, 0x2a
je 0x4ad5bc
cmp esi, 0x2b
je 0x4ad5bc
cmp esi, 0x3f
je 0x4ad5bc
cmp esi, 0x7b
jne 0x4ad57d
lea ecx, [edi + 2]
call fcn.004aab50
test eax, eax
jne 0x4ad5bc
mov ecx, dword [esp + 0x68]
xor ebp, ebp
test ecx, ecx
je 0x4ad5c1
mov edx, dword [esp + 0xb0]
mov eax, edx
dec edx
mov dword [esp + 0xb0], edx
test eax, eax
jg 0x4ad5c1
cmp dword [esp + 0x144], ebp
jne 0x4ad5b6
sub edi, dword [ebx + 0x18]
sar edi, 1
sub di, word [ecx + 8]
mov word [ecx + 0xa], di
mov edi, dword [esp + 0x14]
mov dword [esp + 0x68], ebp
jmp 0x4ad5c1
mov ebp, 1
mov ebx, dword [esp + 0x4c]
test bl, 8
je 0x4ad65d
mov ecx, dword [esp + 0x140]
mov eax, 0xff
cmp word [edi], ax
ja 0x4ad5ec
mov eax, dword [ecx + 0xc]
test byte [esi + eax], 1
jne 0x4afea2
cmp esi, 0x23
jne 0x4ad65d
add edi, 2
mov dword [esp + 0x14], edi
movzx eax, word [edi]
test ax, ax
je 0x4ad65b
mov ebx, edi
mov edx, dword [ecx + 0x60]
mov esi, eax
mov ecx, dword [ecx + 0x1c]
test edx, edx
je 0x4ad6a5
cmp ebx, ecx
jae 0x4ad6de
mov esi, dword [esp + 0x140]
push 1
add esi, 0x64
push esi
push ecx
mov ecx, edi
call fcn.004bc600
mov ecx, dword [esp + 0x14c]
add esp, 0xc
test eax, eax
je 0x4ad6e5
mov edx, dword [esi]
lea edi, [edx - 1]
lea edi, [ebx + edi*2]
mov dword [esp + 0x14], edi
cmp word [edi], 0
jne 0x4afea2
mov ebx, dword [esp + 0x4c]
xor esi, esi
mov ecx, dword [esp + 0x140]
test ebx, 0x4000
je 0x4ad71d
test ebp, ebp
jne 0x4ad71d
mov eax, dword [esp + 0x18]
mov dword [esp + 0x68], eax
mov dword [eax], 0xff0070
mov dword [eax + 4], ebp
sub edi, dword [ecx + 0x18]
sar edi, 1
xor edx, edx
mov word [eax + 0xa], dx
lea edx, [eax + 0xc]
mov word [eax + 8], di
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], edx
jmp 0x4ad721
mov eax, dword [esp + 0x140]
mov edx, dword [eax + 0x64]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
mov ecx, dword [esp + 0x140]
ja 0x4ad6e5
cmp si, word [ecx + 0x68]
jne 0x4ad6e5
cmp edx, 1
je 0x4ad643
mov ax, word [edi + 2]
cmp ax, word [ecx + 0x6a]
je 0x4ad643
jmp 0x4ad6e5
mov ecx, dword [esp + 0x140]
lea edi, [ebx + 2]
mov edx, 0xfc00
mov dword [esp + 0x14], edi
mov ebx, edi
mov ax, word [edi]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4ad70c
lea ebx, [edi + 2]
mov edi, ebx
mov dword [esp + 0x14], edi
movzx eax, word [edi]
test ax, ax
je 0x4ad657
jmp 0x4ad602
mov edx, dword [esp + 0x18]
cmp esi, 0x7c
ja case.0x4ad731.1
movzx eax, byte [esi + 0x4b1c20]
jmp dword [eax*4 + 0x4b1bec]
xor ebp, ebp
mov dword [esp + 0x1c], ebp
test bl, 2
je 0x4ad785
mov eax, dword [esp + 0x50]
mov ecx, 0xffffffff
mov ebx, dword [esp + 0x38]
cmp eax, 0xfffffffe
movsd xmm2, qword [esp + 0xe8]
cmove eax, ecx
mov ecx, 0x1a
mov word [edx], cx
add edx, 2
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x140]
add edi, 2
mov dword [esp + 0x50], eax
mov dword [esp + 0x18], edx
jmp 0x4ad39f
mov ebx, dword [esp + 0x38]
mov ecx, 0x19
movsd xmm2, qword [esp + 0xe8]
mov word [edx], cx
add edx, 2
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x140]
add edi, 2
mov dword [esp + 0x18], edx
jmp 0x4ad39f
movsd xmm2, qword [esp + 0xe8]
xor ebp, ebp
test bl, 2
mov dword [esp + 0x1c], ebp
mov ebx, dword [esp + 0x38]
mov eax, ebp
setne al
add eax, 0x1b
mov word [edx], ax
add edx, 2
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], edx
add edi, 2
jmp 0x4ad39f
mov eax, dword [esp + 0x50]
mov ebp, 0xffffffff
mov esi, dword [esp + 0x3c]
cmp eax, 0xfffffffe
movsd xmm2, qword [esp + 0xe8]
cmove eax, ebp
mov dword [esp + 0x5c], esi
mov dword [esp + 0x50], eax
mov ebp, edx
mov dword [esp + 0x34], eax
mov eax, ebx
mov ebx, dword [esp + 0x38]
shr eax, 2
and eax, 1
mov dword [esp + 0x1c], ebp
or eax, 0xc
mov word [edx], ax
add edx, 2
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], edx
add edi, 2
jmp 0x4ad39f
test dword [ecx + 0x4c], 0x2000000
jne 0x4b1654
mov ecx, dword [esp + 0x4c]
mov bx, si
mov ebp, edx
and esi, 0xfc00
mov dword [esp + 0x1c], ebp
mov word [esp + 0xc0], bx
mov edx, 1
cmp esi, 0xd800
jne 0x4ae93e
mov ax, word [edi + 2]
add edi, 2
mov esi, 0xfc00
and ax, si
mov esi, 0xdc00
cmp ax, si
jne 0x4ae93e
mov dword [esp + 0x14], edi
test cl, 1
mov ax, word [edi]
mov edx, 2
mov word [esp + 0xc2], ax
mov eax, 0
setne al
add eax, 0x1d
mov word [ebp], ax
lea eax, [ebp + 2]
jmp 0x4ae968
movzx eax, word [edi + 2]
mov ebp, edx
mov dword [esp + 0x1c], ebp
cmp eax, 0x3a
je 0x4ad8d8
cmp eax, 0x2e
je 0x4ad8d8
cmp eax, 0x3d
jne 0x4ad8eb
lea edx, [esp + 0x6c]
mov ecx, edi
call fcn.004ac2f0
test eax, eax
jne 0x4b1723
xor edx, edx
mov dword [esp + 0x44], edx
add edi, 2
mov dword [esp + 0x14], edi
movzx ecx, word [edi]
mov dword [esp + 0x2c], ecx
cmp ecx, 0x5c
jne 0x4ad93f
cmp word [edi + 2], 0x45
lea esi, [edi + 2]
jne 0x4ad912
mov edi, esi
jmp 0x4ad8f1
mov edx, 3
mov ebx, 0x4e1068
nop dword [eax]
movzx ecx, word [esi]
lea esi, [esi + 2]
movzx eax, byte [ebx]
lea ebx, [ebx + 1]
dec edx
cmp cx, ax
jne 0x4ad94d
test edx, edx
jne 0x4ad920
mov edx, dword [esp + 0x44]
add edi, 6
jmp 0x4ad8f1
test edx, edx
jne 0x4ad955
cmp ecx, 0x5e
jne 0x4ad955
lea edx, [ecx - 0x5d]
jmp 0x4ad8ed
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
cmp ecx, 0x5d
jne 0x4ad9be
mov eax, dword [esp + 0x140]
test dword [eax + 0x4c], 0x2000000
je 0x4ad9be
mov esi, dword [esp + 0x50]
test edx, edx
mov edx, dword [esp + 0x18]
mov ecx, 0xd
mov ebx, dword [esp + 0x38]
mov eax, 0x97
movsd xmm2, qword [esp + 0xe8]
cmovne eax, ecx
mov ecx, dword [esp + 0x140]
mov word [edx], ax
add edx, 2
mov edi, dword [esp + 0x14]
cmp esi, 0xfffffffe
mov eax, 0xffffffff
mov dword [esp + 0x18], edx
cmove esi, eax
add edi, 2
mov dword [esp + 0x50], esi
mov dword [esp + 0x34], esi
jmp 0x4ad39f
xor edx, edx
xor esi, esi
mov dword [esp + 0x24], edx
xor ebx, ebx
mov edx, dword [esp + 0x18]
xor ebp, ebp
add edx, 6
mov dword [esp + 0x40], esi
mov dword [esp + 0x28], ebx
xorps xmm0, xmm0
mov dword [esp + 0x34], ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0xa0], edx
movups xmmword [esp + 0x7c], xmm0
movups xmmword [esp + 0x8c], xmm0
test ecx, ecx
je 0x4b1700
mov eax, ecx
mov dword [esp + 0x54], ebx
and eax, 0xfc00
mov esi, ebx
cmp eax, 0xd800
jne 0x4ada4e
movzx ecx, word [edi]
mov eax, ecx
mov dword [esp + 0x2c], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ada4e
movzx eax, word [edi + 2]
add edi, 2
and ecx, 0x3ff
mov dword [esp + 0x14], edi
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x144], 0
je 0x4ada79
sub edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x144]
sar edx, 1
add dword [ebx], edx
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x20], edx
cmp dword [esp + 0x64], 0
je 0x4adaa4
cmp ecx, 0x5c
jne 0x4ae0f1
cmp word [edi + 2], 0x45
jne 0x4ae0f1
mov dword [esp + 0x64], 0
add edi, 2
jmp 0x4ae80f
cmp ecx, 0x5b
jne 0x4adce3
movzx esi, word [edi + 2]
cmp esi, 0x3a
je 0x4adac4
cmp esi, 0x2e
je 0x4adac4
cmp esi, 0x3d
jne 0x4ae0f1
lea edx, [esp + 0x6c]
mov ecx, edi
call fcn.004ac2f0
test eax, eax
je 0x4ae0ed
mov dword [esp + 0x5c], 0
cmp esi, 0x3a
jne 0x4b1677
add edi, 4
mov dword [esp + 0x14], edi
mov eax, edi
cmp word [edi], 0x5e
jne 0x4adb10
add edi, 2
mov dword [esp + 0x5c], 1
mov dword [esp + 0x40], 1
mov eax, edi
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0x6c]
mov ebx, str.alpha
sub ecx, eax
mov dword [esp + 0x2c], ebx
sar ecx, 1
mov al, 5
xor edx, edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x30], edx
nop dword [eax]
movzx ebp, al
cmp ecx, ebp
jne 0x4adbb5
mov edx, ecx
mov esi, edi
test ecx, ecx
je 0x4adb59
movzx ecx, word [esi]
lea esi, [esi + 2]
movzx eax, byte [ebx]
lea ebx, [ebx + 1]
dec edx
cmp cx, ax
jne 0x4adba9
test edx, edx
jne 0x4adb43
mov ecx, dword [esp + 0x30]
test ecx, ecx
js 0x4adbcf
mov eax, dword [esp + 0x4c]
test al, 1
je 0x4adb71
xor edx, edx
cmp ecx, 2
cmovle ecx, edx
mov ebx, dword [esp + 0x5c]
test eax, 0x20000000
je 0x4adbf2
mov eax, ebx
neg eax
sbb eax, eax
and eax, 0xe
add eax, ecx
mov edi, dword [eax*4 + 0x4c3da0]
test edi, edi
je 0x4adbf2
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x28]
add edx, 2
mov dword [esp + 0x38], edx
add edi, 0xfffffffe
jmp 0x4ae80b
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov al, byte [edx + 0x4c4cfd]
inc edx
inc ebx
mov dword [esp + 0x30], edx
add ebx, ebp
mov dword [esp + 0x2c], ebx
test al, al
jne 0x4adb30
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x1e
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov esi, dword [esp + 0x140]
lea ecx, [ecx + ecx*2]
mov eax, dword [ecx*4 + 0x4c4b40]
mov edx, dword [esi + 8]
mov esi, dword [ecx*4 + 0x4c4b48]
movups xmm0, xmmword [eax + edx]
movups xmmword [esp + 0xf4], xmm0
movups xmm0, xmmword [eax + edx + 0x10]
mov eax, dword [ecx*4 + 0x4c4b44]
movups xmmword [esp + 0x104], xmm0
test eax, eax
js 0x4adc64
add edx, eax
xor ecx, ecx
test esi, esi
js 0x4adc52
nop dword [eax]
mov al, byte [edx + ecx]
or byte [esp + ecx + 0xf4], al
inc ecx
cmp ecx, 0x20
jl 0x4adc40
jmp 0x4adc64
mov al, byte [edx + ecx]
not al
and byte [esp + ecx + 0xf4], al
inc ecx
cmp ecx, 0x20
jl 0x4adc52
mov eax, esi
neg eax
test esi, esi
cmovns eax, esi
cmp eax, 1
jne 0x4adc7c
and byte [esp + 0xf5], 0xc3
jmp 0x4adc89
cmp eax, 2
jne 0x4adc89
and byte [esp + 0xff], 0x7f
xor ecx, ecx
test ebx, ebx
je 0x4adcb0
nop
mov al, byte [esp + ecx + 0xf4]
not al
or byte [esp + ecx + 0x7c], al
inc ecx
cmp ecx, 0x20
jl 0x4adc90
jmp 0x4adcc1
mov al, byte [esp + ecx + 0xf4]
or byte [esp + ecx + 0x7c], al
inc ecx
cmp ecx, 0x20
jl 0x4adcb0
mov edi, dword [esp + 0x6c]
mov ebx, 1
mov edx, dword [esp + 0x20]
mov ebp, 2
add edi, 2
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], ebp
jmp 0x4ae813
cmp ecx, 0x5c
jne 0x4ae0f1
mov edi, dword [esp + 0x140]
lea ecx, [esp + 0x14]
mov edx, dword [esp + 0x12c]
push 1
push dword [esp + 0x50]
push dword [edi + 0x38]
call fcn.004aabf0
mov ecx, eax
add esp, 0xc
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x2c], ecx
cmp dword [eax], 0
jne 0x4b16c3
cmp ecx, 0xfffffffb
jne 0x4add3c
mov ecx, 8
mov dword [esp + 0x2c], ecx
mov edi, dword [esp + 0x14]
jmp 0x4ae0f1
cmp ecx, 0xfffffff4
je 0x4b16bd
cmp ecx, 0xffffffe6
jne 0x4add71
mov edi, dword [esp + 0x14]
cmp word [edi + 2], 0x5c
jne 0x4add64
cmp word [edi + 4], 0x45
jne 0x4add64
add edi, 4
jmp 0x4ae80b
mov dword [esp + 0x64], 1
jmp 0x4ae80b
cmp ecx, 0xffffffe7
je 0x4ae807
test ecx, ecx
jns 0x4add33
add dword [esp + 0x34], 2
mov eax, 0xfffffffa
mov edx, dword [edi + 8]
inc ebx
sub eax, ecx
mov dword [esp + 0x28], ebx
cmp eax, 0x1c
ja case.0x4adda2.6
movzx eax, byte [eax + 0x4b1cd4]
jmp dword [eax*4 + 0x4b1ca0]
mov eax, dword [esp + 0x14]
mov ebx, esi
mov dword [esp + 0x38], eax
lea eax, [ecx*4 + 0x74]
mov ecx, 0x4c3d88
mov dword [esp + 0x28], ebx
sub ecx, eax
mov edi, dword [ecx]
sub edi, 2
jmp 0x4ae80b
xor ecx, ecx
mov al, byte [edx + ecx + 0x40]
or byte [esp + ecx + 0x7c], al
inc ecx
cmp ecx, 0x20
jl 0x4addd1
jmp 0x4ae807
mov dword [esp + 0x40], 1
xor ecx, ecx
nop
mov al, byte [edx + ecx + 0x40]
not al
or byte [esp + ecx + 0x7c], al
inc ecx
cmp ecx, 0x20
jl 0x4addf0
jmp 0x4ae807
xor ecx, ecx
nop word [eax + eax]
mov al, byte [edx + ecx + 0xa0]
or byte [esp + ecx + 0x7c], al
inc ecx
cmp ecx, 0x20
jl 0x4ade10
jmp 0x4ae807
mov dword [esp + 0x40], 1
xor ecx, ecx
mov al, byte [edx + ecx + 0xa0]
not al
or byte [esp + ecx + 0x7c], al
inc ecx
cmp ecx, 0x20
jl 0x4ade30
jmp 0x4ae807
movzx eax, byte [edx]
mov ecx, 2
or byte [esp + 0x7c], al
movzx eax, byte [edx + 1]
and al, 0xf7
or byte [esp + 0x7d], al
nop
mov al, byte [edx + ecx]
or byte [esp + ecx + 0x7c], al
inc ecx
cmp ecx, 0x20
jl 0x4ade60
jmp 0x4ae807
lea eax, [esp + 0x7c]
mov dword [esp + 0x40], 1
xor esi, esi
sub edx, eax
lea ecx, [esp + 0x7c]
add ecx, esi
inc esi
mov al, byte [ecx + edx]
not al
or byte [ecx], al
cmp esi, 0x20
jl 0x4ade82
or byte [esp + 0x7d], 8
jmp 0x4ae807
mov edx, dword [esp + 0x20]
mov eax, 0x3000
or byte [esp + 0x7d], 2
mov esi, 1
or byte [esp + 0x80], 1
or byte [esp + 0x90], 1
mov ebp, dword [esp + 0x34]
mov dword [edx], 0x16800001
mov dword [edx + 4], 0x180e0001
mov dword [edx + 8], 0x20000002
mov dword [edx + 0xc], 0x1200a
mov dword [edx + 0x10], 0x1202f
mov dword [edx + 0x14], 0x1205f
mov word [edx + 0x18], ax
add edx, 0x1a
mov edi, dword [esp + 0x14]
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], edx
jmp 0x4ae817
xor edx, edx
nop dword [eax]
mov eax, edx
mov ecx, 0xff
sub eax, 1
je 0x4adf2d
sub eax, 3
je 0x4adf26
sub eax, 0x10
jne 0x4adf32
mov ecx, 0xfe
jmp 0x4adf32
mov ecx, 0xfd
or byte [esp + edx + 0x7c], cl
inc edx
cmp edx, 0x20
jl 0x4adf10
mov edx, dword [esp + 0x20]
mov esi, 1
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x24], esi
mov dword [edx], 0x1000002
mov dword [edx + 4], 0x2167f
mov dword [edx + 8], 0x180d1681
mov dword [edx + 0xc], 0x180f0002
mov dword [edx + 0x10], 0x21fff
mov dword [edx + 0x14], 0x202e200b
mov dword [edx + 0x18], 0x20300002
mov dword [edx + 0x1c], 0x2205e
mov dword [edx + 0x20], 0x2fff2060
mov dword [edx + 0x24], 0x30010002
mov dword [edx + 0x28], 0xdfffdbff
add edx, 0x2c
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], edx
jmp 0x4ae817
mov edx, dword [esp + 0x20]
mov eax, 0x2029
or byte [esp + 0x7d], 0x3c
mov esi, 1
or byte [esp + 0x8c], 0x20
mov ebp, dword [esp + 0x34]
mov dword [edx], 0x20280002
mov word [edx + 4], ax
add edx, 6
mov edi, dword [esp + 0x14]
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], edx
jmp 0x4ae817
xor ecx, ecx
nop dword [eax + eax]
mov eax, ecx
mov edx, 0xff
sub eax, 1
je 0x4ae008
sub eax, 0xf
jne 0x4ae00d
mov edx, 0xdf
jmp 0x4ae00d
mov edx, 0xc3
or byte [esp + ecx + 0x7c], dl
inc ecx
cmp ecx, 0x20
jl 0x4adff0
mov edx, dword [esp + 0x20]
mov eax, 0xdfff
mov ebp, dword [esp + 0x34]
mov esi, 1
mov dword [esp + 0x24], esi
mov dword [edx], 0x1000002
mov dword [edx + 4], 0x22027
mov dword [edx + 8], 0xdbff202a
mov word [edx + 0xc], ax
add edx, 0xe
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], edx
jmp 0x4ae817
push dword [esp + 0x12c]
lea eax, [esp + 0xd8]
push eax
lea edx, [esp + 0xd8]
lea ecx, [esp + 0x1c]
call fcn.004ab2d0
add esp, 8
test eax, eax
js 0x4b16c3
mov edx, dword [esp + 0x20]
xor ecx, ecx
cmp dword [esp + 0x2c], 0xfffffff0
mov ebx, esi
mov ebp, dword [esp + 0x34]
mov esi, 1
sete cl
mov dword [esp + 0x24], 1
sub ecx, dword [esp + 0xd0]
neg ecx
mov dword [esp + 0x28], ebx
sbb ecx, ecx
add ecx, 4
mov word [edx], cx
mov word [edx + 2], ax
mov ax, word [esp + 0xd4]
mov word [edx + 4], ax
add edx, 6
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], edx
jmp 0x4ae817
test byte [esp + 0x4c], 0x40
mov edi, dword [esp + 0x14]
jne 0x4b169a
movzx ecx, word [edi]
mov dword [esp + 0x2c], ecx
jmp 0x4ae0f1
mov ecx, dword [esp + 0x2c]
cmp word [edi + 2], 0x5c
jne 0x4ae115
cmp word [edi + 4], 0x45
jne 0x4ae115
add edi, 4
mov dword [esp + 0x64], 0
mov dword [esp + 0x14], edi
cmp word [edi + 2], 0x5c
je 0x4ae0f8
mov esi, edi
cmp ecx, 0xd
je 0x4ae121
cmp ecx, 0xa
jne 0x4ae131
mov ebx, dword [esp + 0x140]
or dword [ebx + 0x50], 0x800
jmp 0x4ae138
mov ebx, dword [esp + 0x140]
mov edx, dword [esp + 0x64]
test edx, edx
jne 0x4ae5eb
cmp word [edi + 2], 0x2d
jne 0x4ae5eb
lea edi, [esi + 4]
mov dword [esp + 0x14], edi
mov ecx, edi
cmp word [edi], 0x5c
mov dword [esp + 0x30], edi
jne 0x4ae1c1
cmp word [edi + 2], 0x45
jne 0x4ae178
add edi, 4
mov dword [esp + 0x14], edi
mov ecx, edi
cmp word [edi], 0x5c
je 0x4ae162
cmp word [edi], 0x5c
mov dword [esp + 0x30], edi
jne 0x4ae1c1
cmp word [edi + 2], 0x51
jne 0x4ae1c1
lea edi, [ecx + 4]
mov dword [esp + 0x14], edi
cmp word [edi], 0x5c
mov dword [esp + 0x30], edi
jne 0x4ae1b6
cmp word [edi + 2], 0x45
jne 0x4ae1b6
add edi, 4
mov dword [esp + 0x14], edi
mov ecx, edi
mov dword [esp + 0x30], edi
cmp word [edi], 0x5c
je 0x4ae182
jmp 0x4ae1bf
mov edx, 1
mov dword [esp + 0x64], edx
mov ecx, edi
movzx eax, word [edi]
test ax, ax
je 0x4ae5e1
test edx, edx
jne 0x4ae1da
cmp eax, 0x5d
je 0x4ae5e1
mov edx, eax
and eax, 0xfc00
mov dword [esp + 0x5c], edx
cmp eax, 0xd800
jne 0x4ae215
movzx eax, word [edi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea edi, [ecx + 2]
add edx, 0x10000
mov dword [esp + 0x30], edi
mov dword [esp + 0x5c], edx
mov dword [esp + 0x14], edi
cmp dword [esp + 0x64], 0
jne 0x4ae26c
cmp edx, 0x5c
jne 0x4ae26c
mov edi, dword [esp + 0x12c]
lea ecx, [esp + 0x14]
push 1
push dword [esp + 0x50]
mov edx, edi
push dword [ebx + 0x38]
call fcn.004aabf0
add esp, 0xc
mov edx, eax
cmp dword [edi], 0
mov dword [esp + 0x5c], edx
jne 0x4b16c3
test edx, edx
jns 0x4ae264
cmp edx, 0xfffffffb
jne 0x4ae5e1
mov edx, 8
mov dword [esp + 0x5c], edx
mov edi, dword [esp + 0x14]
mov dword [esp + 0x30], edi
mov ecx, dword [esp + 0x2c]
cmp edx, ecx
jl 0x4b16dd
je 0x4ae5eb
mov ebp, dword [esp + 0x5c]
cmp ebp, 0xd
je 0x4ae28c
cmp ebp, 0xa
jne 0x4ae293
or dword [ebx + 0x50], 0x800
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x34], 2
cmp ebp, 0xff
jg 0x4ae333
mov esi, eax
and esi, 1
je 0x4ae2bb
cmp ebp, 0x7f
jg 0x4ae333
cmp dword [esp + 0x144], 0
mov ebx, 1
mov dword [esp + 0x28], ebx
jne 0x4ae80b
cmp ecx, ebp
jg 0x4ae80b
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x140]
mov edx, edi
test edx, edx
jns 0x4ae2ee
add edx, 7
sar edx, 3
movzx ecx, byte [esp + edx + 0x7c]
mov eax, edi
and eax, 7
bts ecx, eax
mov byte [esp + edx + 0x7c], cl
test esi, esi
je 0x4ae321
mov eax, dword [ebx + 4]
movzx edx, byte [eax + edi]
mov ecx, edx
and edx, 7
shr ecx, 3
movzx eax, byte [esp + ecx + 0x7c]
bts eax, edx
mov byte [esp + ecx + 0x7c], al
inc edi
cmp edi, ebp
jle 0x4ae2e5
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
jmp 0x4ae80b
mov esi, 1
mov dword [esp + 0x24], esi
test al, 1
je 0x4ae390
mov ebx, ebp
mov edi, ecx
mov dword [esp + 0x30], ebx
mov edx, edi
cmp edi, ebx
ja 0x4ae38c
nop
mov eax, edx
lea edi, [edx + 1]
shr eax, 7
movzx ecx, byte [eax + 0x4d1b58]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4c5178]
mov esi, dword [eax*8 + 0x4d0a7c]
add esi, edx
cmp esi, edx
jne 0x4ae3f5
mov edx, edi
cmp edx, ebx
jbe 0x4ae350
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, 2
mov word [edx], ax
add edx, eax
mov eax, ecx
and eax, 0xf800
cmp eax, 0xd800
je 0x4ae562
cmp ecx, 0x110000
jae 0x4ae562
cmp ecx, 0xffff
jbe 0x4ae567
add ecx, 0xffff0000
mov eax, ecx
and ecx, 0x3ff
shr eax, 0xa
or eax, 0xd800
or ecx, 0xdc00
mov word [edx], ax
mov eax, 4
mov word [edx + 2], cx
jmp 0x4ae56f
lea edx, [esi + 1]
cmp edi, ebx
ja 0x4ae431
nop dword [eax]
mov eax, edi
shr eax, 7
movzx ecx, byte [eax + 0x4d1b58]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4c5178]
mov eax, dword [eax*8 + 0x4d0a7c]
add eax, edi
cmp eax, edx
jne 0x4ae431
inc edi
inc edx
cmp edi, ebx
jbe 0x4ae400
mov ecx, dword [esp + 0x2c]
dec edx
cmp esi, ecx
jb 0x4ae444
cmp edx, ebp
jbe 0x4ae348
jmp 0x4ae45a
lea eax, [ecx - 1]
cmp edx, eax
jb 0x4ae456
mov ecx, esi
mov dword [esp + 0x2c], ecx
jmp 0x4ae348
cmp edx, ebp
jbe 0x4ae468
lea eax, [ebp + 1]
cmp esi, eax
ja 0x4ae468
mov ebp, edx
jmp 0x4ae348
mov ecx, dword [esp + 0x20]
cmp esi, edx
jne 0x4ae480
mov esi, 1
mov word [ecx], si
lea esi, [ecx + 2]
jmp 0x4ae4f1
mov ebx, 2
mov eax, esi
mov word [ecx], bx
and eax, 0xf800
add ecx, ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x20], ecx
cmp eax, 0xd800
je 0x4ae4de
cmp esi, 0x110000
jae 0x4ae4de
cmp esi, 0xffff
jbe 0x4ae4e3
lea ecx, [esi - 0x10000]
mov esi, dword [esp + 0x20]
mov eax, ecx
and ecx, 0x3ff
shr eax, 0xa
or eax, 0xd800
or ecx, 0xdc00
mov word [esi], ax
mov eax, 4
mov word [esi + 2], cx
jmp 0x4ae4ef
mov esi, 0xfffe
mov word [ecx], si
mov eax, 2
mov esi, dword [esp + 0x20]
add esi, eax
mov eax, edx
and eax, 0xf800
cmp eax, 0xd800
je 0x4ae546
cmp edx, 0x110000
jae 0x4ae546
cmp edx, 0xffff
jbe 0x4ae54b
lea ecx, [edx - 0x10000]
mov eax, ecx
and ecx, 0x3ff
shr eax, 0xa
or ecx, 0xdc00
or eax, 0xd800
mov word [esi], ax
mov eax, 4
mov word [esi + 2], cx
add esi, eax
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x20], esi
jmp 0x4ae348
mov edx, 0xfffe
mov ecx, dword [esp + 0x2c]
mov eax, 2
mov word [esi], dx
add esi, eax
mov dword [esp + 0x20], esi
jmp 0x4ae348
mov ecx, 0xfffe
mov word [edx], cx
mov eax, 2
add edx, eax
mov eax, ebp
and eax, 0xf800
cmp eax, 0xd800
je 0x4ae5b9
cmp ebp, 0x110000
jae 0x4ae5b9
cmp ebp, 0xffff
jbe 0x4ae5be
lea ecx, [ebp - 0x10000]
mov eax, ecx
and ecx, 0x3ff
shr eax, 0xa
or eax, 0xd800
or ecx, 0xdc00
mov word [edx], ax
mov eax, 4
mov word [edx + 2], cx
jmp 0x4ae5c6
mov ebp, 0xfffe
mov word [edx], bp
mov eax, 2
mov ebx, dword [esp + 0x54]
add edx, eax
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], ebx
jmp 0x4ae817
mov ecx, dword [esp + 0x2c]
mov edi, esi
mov dword [esp + 0x14], edi
cmp ebp, 2
lea ebx, [ebp + 1]
cmovge ebx, ebp
cmp ebx, 1
jne 0x4ae618
cmp word [edi + 2], 0x5d
jne 0x4ae618
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4ae868
cmp ecx, 0x10000
jl 0x4ae868
cmp ecx, 0xff
jg 0x4ae6b1
mov esi, dword [esp + 0x4c]
and esi, 1
je 0x4ae636
cmp ecx, 0x7f
jg 0x4ae6b1
mov dword [esp + 0x28], 1
mov edx, ecx
test edx, edx
jns 0x4ae647
add edx, 7
sar edx, 3
mov ebp, dword [esp + 0x2c]
mov eax, ebp
movzx ecx, byte [esp + edx + 0x7c]
and eax, 7
bts ecx, eax
mov dword [esp + 0x34], ebx
test esi, esi
mov byte [esp + edx + 0x7c], cl
mov esi, dword [esp + 0x24]
je 0x4ae6a0
mov eax, dword [esp + 0x140]
mov eax, dword [eax + 4]
movzx edx, byte [eax + ebp]
mov ebp, ebx
mov ebx, dword [esp + 0x28]
mov ecx, edx
shr ecx, 3
and edx, 7
mov dword [esp + 0x34], ebp
movzx eax, byte [esp + ecx + 0x7c]
bts eax, edx
mov edx, dword [esp + 0x20]
mov byte [esp + ecx + 0x7c], al
jmp 0x4ae817
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x34]
jmp 0x4ae817
mov edi, dword [esp + 0x20]
mov eax, 1
mov edx, ecx
mov dword [esp + 0x24], 1
mov word [edi], ax
mov eax, edx
and eax, 0xf800
add edi, 2
cmp eax, 0xd800
je 0x4ae712
cmp edx, 0x110000
jae 0x4ae712
cmp edx, 0xffff
jbe 0x4ae717
lea ecx, [edx - 0x10000]
mov eax, ecx
and ecx, 0x3ff
shr eax, 0xa
or eax, 0xd800
or ecx, 0xdc00
mov word [edi], ax
mov eax, 4
mov word [edi + 2], cx
jmp 0x4ae71f
mov ecx, 0xfffe
mov word [edi], cx
mov eax, 2
mov ebp, dword [esp + 0x54]
add edi, eax
test byte [esp + 0x4c], 1
mov esi, edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x34], ebx
je 0x4ae803
mov eax, edx
test eax, eax
jns 0x4ae747
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x4d1b58]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x4ae762
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x34], ebx
mov dword [esp + 0x20], esi
movzx eax, word [ecx*2 + 0x4c5178]
mov ecx, dword [eax*8 + 0x4d0a7c]
add ecx, edx
cmp ecx, edx
je 0x4ae803
mov eax, 1
lea edx, [esi + 2]
mov word [esi], ax
mov eax, ecx
and eax, 0xf800
cmp eax, 0xd800
je 0x4ae7dc
cmp ecx, 0x110000
jae 0x4ae7dc
cmp ecx, 0xffff
jbe 0x4ae7e1
add ecx, 0xffff0000
mov eax, ecx
and ecx, 0x3ff
shr eax, 0xa
or eax, 0xd800
or ecx, 0xdc00
mov word [edx], ax
mov eax, 4
mov word [edx + 2], cx
jmp 0x4ae7e9
mov ecx, 0xfffe
mov word [edx], cx
mov eax, 2
mov edi, dword [esp + 0x14]
add edx, eax
mov dword [esp + 0x28], ebp
mov ebp, ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x20], edx
mov dword [esp + 0x34], ebp
jmp 0x4ae813
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
add edi, 2
mov dword [esp + 0x14], edi
movzx ecx, word [edi]
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x4ae84f
test eax, eax
je 0x4ae9bd
lea edi, [eax + 2]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x14], edi
movzx ecx, word [edi]
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x4b1700
cmp ecx, 0x5d
jne 0x4ada00
cmp dword [esp + 0x64], 0
jne 0x4ada00
jmp 0x4ae9c5
add edi, 2
mov dword [esp + 0x14], edi
test eax, eax
je 0x4ae8d8
mov ebp, dword [esp + 0x50]
mov eax, 0xffffffff
mov edx, dword [esp + 0x18]
cmp ebp, 0xfffffffe
cmove ebp, eax
test byte [esp + 0x4c], 1
mov eax, 0
mov dword [esp + 0x50], ebp
setne al
mov dword [esp + 0x34], ebp
add eax, 0x1f
mov word [edx], ax
mov word [edx + 2], cx
add edx, 4
mov dword [esp + 0x18], edx
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x3c]
add edi, 2
mov ecx, dword [esp + 0x140]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x38]
movsd xmm2, qword [esp + 0xe8]
mov dword [esp + 0x5c], esi
jmp 0x4ad39f
cmp ecx, 0xffff
jle 0x4ae9ab
mov eax, ecx
and eax, 0xf800
cmp eax, 0xd800
je 0x4ae9a6
cmp ecx, 0x110000
jae 0x4ae9a6
cmp ecx, 0xffff
jbe 0x4ae9ab
lea eax, [ecx - 0x10000]
mov ebx, eax
and eax, 0x3ff
shr ebx, 0xa
or ebx, 0xd800
or eax, 0xdc00
mov word [esp + 0xc0], bx
mov word [esp + 0xc2], ax
mov edx, 2
mov ecx, dword [esp + 0x18]
mov eax, 0
test byte [esp + 0x4c], 1
mov ebp, ecx
mov dword [esp + 0x1c], ebp
setne al
add eax, 0x1d
mov word [ecx], ax
mov eax, ecx
add eax, 2
mov dword [esp + 0x18], eax
test edx, edx
je 0x4ae983
mov ecx, edx
lea esi, [esp + 0xc0]
shr ecx, 1
mov edi, eax
rep movsd dword es:[edi], dword [esi]
adc ecx, ecx
lea eax, [eax + edx*2]
rep movsw word es:[edi], word [esi]
mov dword [esp + 0x18], eax
cmp bx, 0xd
je 0x4ae993
cmp bx, 0xa
jne 0x4b1547
mov ecx, dword [esp + 0x140]
or dword [ecx + 0x50], 0x800
jmp 0x4b154e
mov ecx, 0xfffe
mov bx, cx
mov edx, 1
mov word [esp + 0xc0], bx
jmp 0x4ae93e
test ecx, ecx
je 0x4b1700
mov eax, dword [esp + 0x50]
mov ecx, 0xffffffff
cmp eax, 0xfffffffe
cmove eax, ecx
test esi, esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x50], eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x5c], eax
je 0x4aea9d
test esi, esi
je 0x4aea02
test dword [esp + 0x4c], 0x20000000
je 0x4aea9d
mov esi, dword [esp + 0x18]
xor eax, eax
mov word [edx], ax
mov eax, 0x6c
add edx, 2
mov dword [esp + 0x20], edx
mov word [esi], ax
xor eax, eax
cmp dword [esp + 0x44], eax
setne al
movzx eax, ax
mov word [esi + 4], ax
test ebx, ebx
jle 0x4aea6b
or eax, 2
mov word [esi + 4], ax
add esi, 6
mov eax, edx
sub eax, esi
and eax, 0xfffffffe
push eax
lea eax, [esi + 0x20]
push esi
push eax
call sub.VCRUNTIME140.dll_memmove
movups xmm0, xmmword [esp + 0x88]
mov edx, dword [esp + 0x2c]
add esp, 0xc
add edx, 0x20
movups xmmword [esi], xmm0
movups xmm0, xmmword [esp + 0x8c]
movups xmmword [esi + 0x10], xmm0
mov ebp, dword [esp + 0x1c]
mov eax, edx
mov ecx, dword [esp + 0x140]
sub eax, ebp
mov ebx, dword [esp + 0x38]
movsd xmm2, qword [esp + 0xe8]
sar eax, 1
mov word [ebp + 2], ax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], edx
add edi, 2
jmp 0x4ad39f
mov ecx, dword [esp + 0x44]
xor eax, eax
mov edx, dword [esp + 0x18]
cmp ecx, esi
setne al
add eax, 0x6a
cmp dword [esp + 0x144], 0
mov word [edx], ax
jne 0x4aeae1
test ecx, ecx
je 0x4aeacc
xor ecx, ecx
not byte [esp + ecx + 0x7c]
inc ecx
cmp ecx, 0x20
jl 0x4aeac2
movups xmm0, xmmword [esp + 0x7c]
movups xmmword [edx + 2], xmm0
movups xmm0, xmmword [esp + 0x8c]
movups xmmword [edx + 0x12], xmm0
add edx, 0x22
mov dword [esp + 0x18], edx
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x5c], esi
mov ecx, dword [esp + 0x140]
add edi, 2
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x38]
movsd xmm2, qword [esp + 0xe8]
jmp 0x4ad39f
test ebp, ebp
je case.0x4ad731.1
movzx eax, word [edi + 2]
add edi, 2
xor ecx, ecx
or edx, 0xffffffff
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], edx
cmp eax, 0x30
jb 0x4aeb6e
mov edx, eax
cmp dx, 0x39
ja 0x4aeb56
movzx eax, dx
lea ecx, [ecx + ecx*4]
add edi, 2
lea ecx, [ecx - 0x18]
lea ecx, [eax + ecx*2]
movzx eax, word [edi]
mov edx, eax
cmp eax, 0x30
jae 0x4aeb37
mov dword [esp + 0x2c], ecx
test ecx, ecx
js 0x4b1754
cmp ecx, 0xffff
jg 0x4b1754
cmp word [edi], 0x7d
jne 0x4aeb7c
mov edx, ecx
mov dword [esp + 0x28], edx
jmp 0x4aebd8
movzx eax, word [edi + 2]
add edi, 2
cmp eax, 0x7d
je 0x4aebd8
xor ebx, ebx
mov dword [esp + 0x28], ebx
cmp eax, 0x30
jb 0x4aebd0
mov edx, eax
cmp dx, 0x39
ja 0x4aebb4
movzx eax, dx
lea ebx, [ebx + ebx*4]
add edi, 2
lea ebx, [ebx - 0x18]
lea ebx, [eax + ebx*2]
movzx eax, word [edi]
mov edx, eax
cmp eax, 0x30
jae 0x4aeb95
mov dword [esp + 0x28], ebx
test ebx, ebx
js 0x4b1754
cmp ebx, 0xffff
jg 0x4b1754
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jb 0x4b1777
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x14], edi
cmp dword [eax], 0
jne 0x4b1bd3
mov ebp, dword [esp + 0x28]
jmp 0x4aec19
xor ecx, ecx
or ebp, 0xffffffff
jmp 0x4aec0a
mov ecx, 1
or ebp, 0xffffffff
jmp 0x4aec0a
xor ecx, ecx
mov ebp, 1
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], ebp
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x4b17bd
mov eax, dword [esp + 0x5c]
test ecx, ecx
cmovne eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
mov ebx, eax
mov eax, dword [esp + 0x34]
cmovne eax, dword [esp + 0x50]
xor edx, edx
cmp ecx, ebp
mov dword [esp + 0x50], eax
mov eax, 0x20000000
mov dword [esp + 0x40], edx
cmove eax, edx
mov edx, esi
mov dword [esp + 0x48], edx
movzx ecx, word [edi + 2]
mov dword [esp + 0x70], eax
cmp ecx, 0x2b
jne 0x4aec7f
add edi, 2
mov dword [esp + 0x24], 0
mov dword [esp + 0x40], 1
mov dword [esp + 0x14], edi
jmp 0x4aeca3
cmp ecx, 0x3f
jne 0x4aec98
mov ecx, dword [esp + 0xb8]
add edi, 2
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], edi
jmp 0x4aeca3
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x24], eax
cmp word [esi], 0x6f
jne 0x4aed09
mov eax, dword [esi]
add dword [esp + 0x18], 8
cmp dword [esp + 0x144], 0
mov dword [esi + 4], eax
mov dword [esi], 0x4007b
mov dword [esi + 8], 0x40072
mov dword [esp + 0x60], 6
jne 0x4aed01
mov edi, dword [esp + 0x140]
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x24]
add eax, 2
cmp edx, eax
jb 0x4aed01
mov ecx, dword [esp + 0x1c]
sub ecx, dword [edi + 0x14]
movzx esi, word [edx - 2]
add ecx, 2
sar ecx, 1
cmp esi, ecx
jne 0x4aed01
lea eax, [esi + 2]
mov word [edx - 2], ax
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
movzx ecx, word [eax]
cmp ecx, 0x1d
je 0x4af625
cmp ecx, 0x1e
je 0x4af625
cmp ecx, 0x1f
je 0x4af5bf
cmp ecx, 0x20
je 0x4af5bf
cmp ecx, 0x17
jae 0x4aed8e
cmp dword [esp + 0x40], 0
mov esi, 0x34
mov ebp, ecx
jne 0x4af6ab
mov edx, dword [esp + 0x28]
mov dword [esp + 0x3c], ebx
test edx, edx
jns 0x4af6ab
push dword [esp + 0x140]
mov ecx, dword [esp + 0x20]
lea eax, [edi + 2]
push dword [esp + 0x50]
lea edx, [esi - 0x33]
mov dword [esp + 0x44], ebx
push eax
call fcn.004ac720
add esp, 0xc
test eax, eax
je 0x4af6a7
mov dword [esp + 0x3c], ebx
jmp 0x4af697
cmp ecx, 0x6a
je 0x4af4d7
cmp ecx, 0x6b
je 0x4af4d7
cmp ecx, 0x6c
je 0x4af4d7
cmp ecx, 0x6d
je 0x4af4d7
cmp ecx, 0x6e
je 0x4af4d7
lea eax, [ecx - 0x77]
cmp ax, 0xa
ja 0x4af4bc
mov esi, dword [esp + 0x18]
xor eax, eax
sub esi, dword [esp + 0x1c]
mov dword [esp + 0x54], eax
mov eax, 0x81
sar esi, 1
mov dword [esp + 0x30], esi
mov dword [esp + 0x44], 0
cmp cx, ax
jne 0x4aee0f
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
mov eax, 0x8b
cmp word [ecx + 4], ax
je 0x4af9c1
mov eax, dword [esp + 0x2c]
jmp 0x4aee44
cmp ecx, 0x7b
jae 0x4aee3c
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x4af9c1
test ebp, ebp
js 0x4aee31
cmp ebp, 1
jle 0x4aee40
mov ebp, 1
mov dword [esp + 0x28], ebp
jmp 0x4aee40
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
test eax, eax
jne 0x4aef62
push dword [esp + 0x58]
mov eax, dword [esp + 0x1c]
lea esi, [ecx + 2]
push dword [esp + 0x144]
xor edx, edx
push ecx
mov word [eax], dx
cmp ebp, 1
jg 0x4aeefb
mov edx, 1
call fcn.004ac380
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov edi, dword [esp + 0x1c]
add eax, eax
push eax
push edi
push esi
call sub.VCRUNTIME140.dll_memmove
mov edx, dword [esp + 0x24]
add esp, 0xc
add edx, 2
mov dword [esp + 0x18], edx
test ebp, ebp
jne 0x4aeed5
mov ecx, dword [esp + 0x140]
mov eax, 0x9b
movsd xmm2, qword [esp + 0xe8]
mov word [edi], ax
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x70]
or dword [ecx + 0x54], eax
add edi, 2
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x1c], ebp
jmp 0x4ad39f
mov eax, dword [esp + 0x24]
add eax, 0x8c
mov dword [esp + 0x54], edi
mov word [edi], ax
dec ebp
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3c], ebx
jmp 0x4af0f4
mov edx, 3
call fcn.004ac380
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov edi, dword [esp + 0x1c]
add eax, eax
push eax
lea eax, [edi + 6]
push edi
push eax
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [esp + 0x30]
mov ecx, esi
add dword [esp + 0x24], 6
add eax, 0x8c
mov word [edi], ax
mov edx, 0x7d
mov eax, ecx
mov dword [esp + 0x48], ebx
mov word [ecx], dx
add eax, 4
add ecx, 2
mov dword [esp + 0x28], eax
xor edx, edx
mov dword [esp + 0x50], ecx
add esp, 0xc
dec ebp
mov word [ecx], dx
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x48]
jmp 0x4af0f4
mov dword [esp + 0x3c], ebx
cmp eax, 1
jbe 0x4af0ee
cmp dword [esp + 0x144], 0
je 0x4aefd4
lea ecx, [eax - 1]
mov eax, dword [esp + 0x60]
movd xmm1, ecx
mov esi, ecx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
imul esi, eax
mulsd xmm1, xmm0
comisd xmm1, xmm2
ja 0x4b1ba3
mov eax, dword [esp + 0x144]
mov ecx, dword [eax]
mov eax, 0x7fffffeb
sub eax, ecx
cmp eax, esi
jl 0x4b1ba3
lea eax, [esi + ecx]
mov dword [esp + 0x3c], ebx
mov ecx, dword [esp + 0x144]
mov dword [ecx], eax
mov eax, dword [esp + 0x2c]
jmp 0x4af0ee
cmp dword [esp + 0xa8], 0
mov dword [esp + 0x3c], ebx
je 0x4aefef
test ebx, ebx
mov eax, ebx
cmovs eax, dword [esp + 0x50]
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x140]
lea ebp, [esi + esi]
mov dword [esp + 0xa0], ebp
mov ebx, 1
mov esi, dword [edx + 0x24]
push ebp
push ecx
push dword [esp + 0x20]
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x14c]
mov ecx, esi
sub ecx, dword [esp + 0x64]
add esp, 0xc
sar ecx, 1
mov eax, dword [edx + 0x34]
mov edi, dword [edx + 0x10]
sub eax, ecx
add eax, 0xffffff9c
lea eax, [edi + eax*2]
cmp dword [edx + 0x24], eax
jbe 0x4af094
mov ecx, edx
call fcn.004aaac0
mov ecx, dword [esp + 0x12c]
mov dword [ecx], eax
test eax, eax
jne 0x4b16c3
mov eax, dword [esp + 0x140]
sub esi, edi
mov ecx, dword [esp + 0x58]
sub ecx, edi
sar esi, 1
sar ecx, 1
mov edx, dword [eax + 0x10]
mov edi, edx
mov eax, dword [eax + 0x34]
lea ecx, [edx + ecx*2]
lea esi, [edx + esi*2]
mov dword [esp + 0x58], ecx
mov ecx, esi
add edx, 0xffffff38
sub ecx, dword [esp + 0x58]
sar ecx, 1
sub eax, ecx
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x140]
cmp dword [edx + 0x24], eax
ja 0x4af038
mov edi, dword [esp + 0x58]
cmp edi, esi
jae 0x4af0be
mov ebp, dword [esp + 0x30]
mov cx, word [edi]
add edi, 2
mov eax, dword [edx + 0x24]
add cx, bp
mov word [eax], cx
add dword [edx + 0x24], 2
cmp edi, esi
jb 0x4af0a0
mov ebp, dword [esp + 0xa0]
mov eax, dword [esp + 0x30]
inc ebx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x58], esi
lea ecx, [ecx + eax*2]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1c]
cmp ebx, eax
jl 0x4af005
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x28]
test ebp, ebp
jle 0x4af0f6
sub ebp, eax
test ebp, ebp
js 0x4af346
mov ebx, dword [esp + 0x144]
test ebx, ebx
je 0x4af1ad
test ebp, ebp
jle 0x4af1ad
mov eax, dword [esp + 0x60]
add eax, 5
movd xmm0, ebp
cvtdq2pd xmm0, xmm0
mov ecx, eax
movd xmm1, eax
cvtdq2pd xmm1, xmm1
imul ecx, ebp
mulsd xmm1, xmm0
sub ecx, 4
comisd xmm1, xmmword [esp + 0xe8]
ja 0x4b1ba3
mov esi, dword [ebx]
mov eax, 0x7fffffeb
sub eax, esi
cmp eax, ecx
jl 0x4b1ba3
lea eax, [ecx + esi]
mov dword [ebx], eax
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x4af926
mov ebx, 0x72
mov edx, ebp
mov esi, ebp
sub edx, ecx
sar edx, 1
inc edx
lea eax, [edx + edx]
sub esi, eax
movzx eax, word [esi + 2]
mov word [ebp], bx
test eax, eax
je 0x4af32f
add eax, eax
sub ecx, eax
movzx eax, dx
mov word [ebp + 2], ax
add ebp, 4
mov dword [esp + 0x18], ebp
mov word [esi + 2], ax
test ecx, ecx
jne 0x4af170
jmp 0x4af91e
lea eax, [ebp - 1]
mov dword [esp + 0x28], eax
test eax, eax
js 0x4af15b
mov esi, dword [esp + 0x140]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
add ecx, 0x8c
mov ebp, dword [esp + 0x18]
add edx, edx
mov edi, dword [esi + 0x24]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x54], edx
mov word [ebp], cx
mov ebx, edi
add ebp, 2
mov dword [esp + 0x18], ebp
test eax, eax
je 0x4af21f
mov ecx, dword [esp + 0x44]
mov eax, 0x7d
mov word [ebp], ax
add ebp, 2
test ecx, ecx
jne 0x4af20a
xor eax, eax
jmp 0x4af210
mov eax, ebp
sub eax, ecx
sar eax, 1
mov dword [esp + 0x44], ebp
mov word [ebp], ax
add ebp, 2
mov dword [esp + 0x18], ebp
push edx
push dword [esp + 0x20]
push ebp
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x14c]
add esp, 0xc
sub edi, dword [esp + 0x58]
mov ebp, dword [esi + 0x10]
mov esi, dword [esi + 0x24]
mov eax, dword [eax + 0x34]
sar edi, 1
sub eax, edi
add eax, 0xffffff9c
lea eax, [eax*2]
add eax, ebp
cmp esi, eax
jbe 0x4af2ab
mov edi, dword [esp + 0x140]
nop dword [eax]
mov ecx, edi
call fcn.004aaac0
mov ecx, dword [esp + 0x12c]
mov dword [ecx], eax
test eax, eax
jne 0x4b16c3
mov edx, dword [edi + 0x10]
sub ebx, ebp
mov eax, dword [esp + 0x58]
mov esi, dword [edi + 0x24]
sub eax, ebp
sar eax, 1
mov ebp, edx
sar ebx, 1
lea eax, [edx + eax*2]
lea ebx, [edx + ebx*2]
mov dword [esp + 0x58], eax
mov ecx, ebx
sub ecx, eax
mov eax, dword [edi + 0x34]
sar ecx, 1
sub eax, ecx
add eax, 0xffffff9c
lea eax, [edx + eax*2]
cmp esi, eax
ja 0x4af260
mov ebp, dword [esp + 0x58]
mov edi, esi
mov esi, dword [esp + 0x140]
cmp ebp, ebx
jae 0x4af2f2
xor eax, eax
cmp dword [esp + 0x28], eax
setne al
lea eax, [eax*2 + 1]
movzx edx, ax
nop
mov cx, word [ebp]
add ebp, 2
mov eax, dword [esi + 0x24]
add cx, dx
add cx, word [esp + 0x30]
mov word [eax], cx
mov edi, dword [esi + 0x24]
add edi, 2
mov dword [esi + 0x24], edi
cmp ebp, ebx
jb 0x4af2d0
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x58], ebx
lea ebp, [ebp + eax*2]
mov eax, dword [esp + 0x28]
sub eax, 1
mov dword [esp + 0x18], ebp
mov dword [esp + 0x28], eax
jns 0x4af1e1
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x48]
jmp 0x4af15f
movzx eax, dx
mov word [ebp + 2], ax
mov word [esi + 2], ax
lea eax, [ebp + 4]
mov dword [esp + 0x18], eax
jmp 0x4af91e
mov edx, dword [esp + 0x18]
movzx eax, word [edx - 2]
lea edi, [edx - 4]
add eax, eax
mov ebx, edi
sub ebx, eax
movzx eax, word [ebx]
cmp eax, 0x7b
je 0x4af366
mov ecx, eax
cmp eax, 0x7c
jne 0x4af38e
mov ebp, dword [esp + 0x40]
test ebp, ebp
je 0x4af378
mov eax, 0x7d
mov word [ebx], ax
jmp 0x4af398
mov ecx, eax
cmp eax, 0x7b
jne 0x4af392
mov eax, dword [esp + 0x24]
add eax, 0x73
mov word [edi], ax
jmp 0x4af91e
mov ebp, dword [esp + 0x40]
cmp cx, 0x7c
je 0x4af37f
cmp dword [esp + 0x144], 0
jne 0x4af3d4
mov esi, ebx
push dword [esp + 0x140]
mov edx, edi
push ecx
mov ecx, esi
call fcn.004abf00
add esp, 8
test eax, eax
jne 0x4af3cc
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
lea esi, [esi + eax*2]
je 0x4af3a4
jmp 0x4af3d0
add word [ebx], 5
mov edx, dword [esp + 0x18]
test ebp, ebp
je 0x4af485
movzx eax, word [ebx]
mov ecx, 0x81
cmp ax, cx
je 0x4af401
mov ecx, 0x86
cmp ax, cx
je 0x4af401
inc eax
mov word [ebx], ax
mov eax, 0x75
mov word [edi], ax
jmp 0x4af45d
push dword [esp + 0x58]
xor eax, eax
mov esi, edx
push dword [esp + 0x144]
mov word [edx], ax
sub esi, ebx
push ecx
lea edx, [eax + 2]
sar esi, 1
mov ecx, ebx
call fcn.004ac380
add esp, 0xc
lea eax, [esi + esi]
push eax
lea eax, [ebx + 4]
push ebx
push eax
call sub.VCRUNTIME140.dll_memmove
mov edx, dword [esp + 0x24]
mov eax, 0x7e
mov word [ebx], ax
add esp, 0xc
mov eax, 0x75
mov word [edx + 4], ax
lea eax, [esi + 2]
mov word [edx + 6], ax
add edx, 8
mov dword [esp + 0x18], edx
mov word [ebx + 2], ax
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4af46d
mov ecx, 0x8e
mov word [eax], cx
cmp dword [esp + 0x2c], 2
mov edi, dword [esp + 0x14]
jb 0x4af9c5
mov edx, dword [esp + 0x48]
jmp 0x4af931
mov eax, dword [esp + 0x24]
xor ebp, ebp
mov ecx, dword [esp + 0x140]
add eax, 0x73
mov ebx, dword [esp + 0x38]
movsd xmm2, qword [esp + 0xe8]
mov word [edi], ax
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x70]
or dword [ecx + 0x54], eax
add edi, 2
mov dword [esp + 0x1c], ebp
jmp 0x4ad39f
mov eax, 0x97
cmp cx, ax
jne 0x4b179a
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x3c], esi
jmp 0x4af9c1
test ebp, ebp
jne 0x4af510
mov ecx, dword [esp + 0x140]
mov edx, eax
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
or dword [ecx + 0x54], eax
add edi, 2
movsd xmm2, qword [esp + 0xe8]
mov dword [esp + 0x18], edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x1c], ebp
jmp 0x4ad39f
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x4af560
cmp ebp, 0xffffffff
jne 0x4af53c
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x3c]
add eax, 0x62
mov dword [esp + 0x3c], esi
mov word [ebp], ax
add ebp, 2
jmp 0x4af91a
cmp ebp, 1
jne 0x4af589
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x3c]
add eax, 0x66
mov dword [esp + 0x3c], esi
mov word [ebp], ax
add ebp, 2
jmp 0x4af91a
cmp ecx, 1
jne 0x4af589
cmp ebp, 0xffffffff
jne 0x4af589
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x3c]
add eax, 0x64
mov dword [esp + 0x3c], esi
mov word [ebp], ax
add ebp, 2
jmp 0x4af91a
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x3c]
add eax, 0x68
mov dword [esp + 0x3c], esi
mov word [edx], ax
xor eax, eax
mov word [edx + 2], cx
add edx, 4
cmp ebp, 0xffffffff
mov dword [esp + 0x18], edx
cmove ebp, eax
mov word [edx], bp
mov ebp, edx
add ebp, 2
jmp 0x4af91a
movzx ebp, word [eax + 2]
cmp ecx, 0x1f
mov esi, 0x27
mov ecx, 0x1a
cmove esi, ecx
cmp dword [esp + 0x40], 0
jne 0x4af618
mov edx, dword [esp + 0x28]
test edx, edx
jns 0x4af618
push dword [esp + 0x140]
lea eax, [edi + 2]
push dword [esp + 0x50]
lea edx, [ecx - 0x19]
mov ecx, dword [esp + 0x24]
push eax
call fcn.004ac720
mov edi, dword [esp + 0x20]
add esp, 0xc
test eax, eax
je 0x4af618
mov dword [esp + 0x24], 0
mov dword [esp + 0x40], 1
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x3c], ecx
jmp 0x4af6ab
mov edx, dword [esp + 0x18]
xor eax, eax
cmp ecx, 0x1d
mov esi, 0xd
cmove esi, eax
movzx ecx, word [edx - 2]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4af6cc
mov eax, dword [edx - 4]
mov ebp, 0x10000002
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x114], eax
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x140]
cmp dword [esp + 0x40], 0
jne 0x4af6ab
mov edx, dword [esp + 0x28]
test edx, edx
jns 0x4af6ab
mov ecx, dword [esp + 0x1c]
mov edx, 1
push eax
push dword [esp + 0x50]
lea eax, [edi + 2]
push eax
call fcn.004ac720
add esp, 0xc
test eax, eax
je 0x4af6a7
mov dword [esp + 0x40], 1
mov dword [esp + 0x24], 0
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
movzx eax, word [edx]
cmp eax, 0x10
je 0x4af6f6
cmp eax, 0xf
je 0x4af6f6
mov dword [esp + 0x20], 0xffffffff
lea ecx, [edx + 2]
or ebx, 0xffffffff
jmp 0x4af704
cmp dword [esp + 0x2c], 1
mov ebp, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x3c], ecx
jbe 0x4af663
mov eax, dword [esp + 0x140]
mov ecx, dword [eax + 0x54]
or ecx, ebp
or ecx, dword [esp + 0x78]
mov dword [esp + 0x3c], ecx
jmp 0x4af66a
movzx eax, word [edx + 4]
lea ecx, [edx + 2]
movzx ebx, word [ecx]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4af9c1
add dword [esp + 0x24], esi
cmp dword [esp + 0x2c], 0
jne 0x4af79d
mov eax, dword [esp + 0x24]
mov edi, ecx
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
movzx eax, ax
cmp edx, 0xffffffff
jne 0x4af785
add eax, 0x21
mov word [esi], ax
mov dword [esp + 0x18], edi
mov esi, dword [esp + 0x20]
test ebp, 0x10000000
je 0x4af8fd
and ebp, 7
lea eax, [ebp*2]
push eax
lea eax, [esp + 0x118]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
lea edi, [edi + ebp*2]
add esp, 0xc
mov dword [esp + 0x18], edi
mov ebp, edi
jmp 0x4af90b
cmp edx, 1
jne 0x4af78f
add eax, 0x25
jmp 0x4af744
add eax, 0x27
mov word [esi], ax
mov word [edi], dx
add edi, 2
jmp 0x4af747
mov ecx, dword [esp + 0x2c]
cmp ecx, 1
jne 0x4af7e8
cmp eax, 0xffffffff
jne 0x4af7be
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
add eax, 0x23
mov word [ecx], ax
lea edi, [ecx + 2]
jmp 0x4af747
mov dword [esp + 0x18], edx
cmp eax, 1
je 0x4af9c1
mov eax, dword [esp + 0x24]
lea ecx, [edx + 2]
add eax, 0x27
lea edi, [ecx + 2]
mov word [edx], ax
mov eax, dword [esp + 0x28]
dec eax
mov word [ecx], ax
jmp 0x4af747
mov edx, dword [esp + 0x1c]
lea eax, [esi + 0x29]
lea edi, [edx + 2]
mov word [edx], ax
mov edx, dword [esp + 0x28]
mov word [edi], cx
add edi, 2
mov dword [esp + 0x18], edi
test edx, edx
jns 0x4af878
test ebp, 0x10000000
je 0x4af84a
mov esi, ebp
and esi, 7
lea eax, [esi + esi]
push eax
lea eax, [esp + 0x118]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea edi, [edi + esi*2]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
add eax, 0x21
mov word [edi], ax
add edi, 2
mov dword [esp + 0x18], edi
jmp 0x4af74f
mov word [edi], bp
add edi, 2
test ebx, ebx
js 0x4af830
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov word [edi], bx
add eax, 0x21
mov word [edi + 2], si
add edi, 4
mov word [edi], ax
add edi, 2
mov dword [esp + 0x18], edi
jmp 0x4af74f
cmp edx, ecx
je 0x4af74b
test ebp, 0x10000000
je 0x4af8af
mov esi, ebp
and esi, 7
lea eax, [esi + esi]
push eax
lea eax, [esp + 0x118]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x34]
lea edi, [edi + esi*2]
mov ecx, dword [esp + 0x38]
add esp, 0xc
jmp 0x4af8b5
mov word [edi], bp
add edi, 2
mov esi, dword [esp + 0x20]
test ebx, ebx
js 0x4af8c7
mov word [edi], bx
mov word [edi + 2], si
add edi, 4
mov eax, dword [esp + 0x24]
sub edx, ecx
movzx eax, ax
cmp edx, 1
jne 0x4af8e7
add eax, 0x25
mov word [edi], ax
add edi, 2
mov dword [esp + 0x18], edi
jmp 0x4af74f
add eax, 0x27
mov word [edi], ax
mov word [edi + 2], dx
add edi, 4
mov dword [esp + 0x18], edi
jmp 0x4af74f
mov word [edi], bp
mov ebp, dword [esp + 0x18]
add ebp, 2
mov dword [esp + 0x18], ebp
test ebx, ebx
js 0x4af91e
mov word [ebp], bx
mov word [ebp + 2], si
add ebp, 4
mov dword [esp + 0x18], ebp
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x48]
cmp dword [esp + 0x40], 0
je 0x4af9c1
movzx eax, word [edx]
cmp eax, 0x5d
jne 0x4af955
movzx eax, word [edx + 4]
cmp eax, 0x10
je 0x4af94c
cmp eax, 0xf
mov eax, 6
jne 0x4af951
mov eax, 0xa
add edx, eax
jmp 0x4af986
cmp eax, 0x29
je 0x4af95f
cmp eax, 0x43
jne 0x4af98a
movzx eax, byte [eax + 0x4d3d58]
mov ecx, 0xfc00
lea edx, [edx + eax*2]
mov dword [esp + 0x48], edx
mov ax, word [edx - 2]
and ax, cx
mov ecx, 0xd800
cmp ax, cx
jne 0x4af98a
add edx, 2
mov dword [esp + 0x48], edx
mov ecx, dword [esp + 0x18]
mov esi, ecx
sub esi, edx
sar esi, 1
test esi, esi
jle 0x4af9c1
movzx eax, word [edx]
add eax, 0xffffffdf
cmp eax, 0x3a
ja case.0x4af9ae.34
movzx eax, byte [eax + 0x4b1d48]
jmp dword [eax*4 + 0x4b1cf4]
mov eax, 0x2a
mov word [edx], ax
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x140]
xor ebp, ebp
mov eax, dword [esp + 0x70]
mov ebx, dword [esp + 0x38]
movsd xmm2, qword [esp + 0xe8]
or dword [ecx + 0x54], eax
add edi, 2
mov dword [esp + 0x1c], ebp
jmp 0x4ad39f
mov eax, 0x2b
jmp 0x4af9ba
mov eax, 0x2c
jmp 0x4af9ba
mov eax, 0x2d
jmp 0x4af9ba
mov eax, 0x37
jmp 0x4af9ba
mov eax, 0x38
jmp 0x4af9ba
mov eax, 0x39
jmp 0x4af9ba
mov eax, 0x3a
jmp 0x4af9ba
mov eax, 0x44
jmp 0x4af9ba
mov eax, 0x45
jmp 0x4af9ba
mov eax, 0x46
jmp 0x4af9ba
mov eax, 0x47
jmp 0x4af9ba
mov eax, 0x51
jmp 0x4af9ba
mov eax, 0x52
jmp 0x4af9ba
mov eax, 0x53
jmp 0x4af9ba
mov eax, 0x54
jmp 0x4af9ba
mov eax, 0x5e
jmp 0x4af9ba
mov eax, 0x5f
jmp 0x4af9ba
mov eax, 0x60
jmp 0x4af9ba
mov eax, 0x61
jmp 0x4af9ba
push dword [esp + 0x58]
xor eax, eax
push dword [esp + 0x144]
mov word [ecx], ax
push ecx
mov ecx, dword [esp + 0x54]
lea edx, [eax + 2]
call fcn.004ac380
add esp, 0xc
lea eax, [esi + esi]
push eax
mov eax, dword [esp + 0x4c]
push eax
add eax, 4
push eax
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [esp + 0x54]
mov ecx, 0x7b
mov edx, dword [esp + 0x24]
add esp, 0xc
mov word [eax], cx
mov eax, 0x72
mov word [edx + 4], ax
lea ecx, [esi + 2]
mov word [edx + 6], cx
add edx, 8
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], edx
mov word [eax + 2], cx
mov edi, dword [esp + 0x14]
jmp 0x4af9c5
mov eax, dword [ecx + 0x24]
lea esi, [edi + 2]
mov dword [esp + 0x58], eax
xor edx, edx
xor eax, eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x40], eax
movzx eax, word [esi]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], 0x7f
cmp eax, 0x2a
jne 0x4afe32
movzx eax, word [esi + 2]
cmp eax, 0x3a
je 0x4afb8d
mov ebp, 0xff
cmp ax, bp
ja 0x4afb54
mov ebp, dword [esp + 0x140]
mov ecx, eax
mov eax, dword [ebp + 0xc]
test byte [ecx + eax], 2
jne 0x4afb94
mov ecx, ebp
test ebx, 0x1000
je 0x4b0883
mov eax, dword [esp + 0x18]
mov ebx, 0x7d
mov dword [esp + 0x24], 0x7d
mov edi, edx
mov dword [esp + 0x1c], eax
mov word [eax], bx
mov ebx, dword [ecx + 0x54]
mov esi, dword [ecx + 0x38]
mov dword [esp + 0x48], eax
mov dword [esp + 0x60], edx
jmp 0x4b0cf4
mov ebp, dword [esp + 0x140]
lea edi, [esi + 2]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], edx
mov ebx, 0x4c27f4
mov dword [esp + 0x1c], edx
mov esi, edi
mov dword [esp + 0x14], edi
mov edx, 0xff
movzx eax, word [edi]
mov ecx, edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x54], esi
cmp ax, dx
ja 0x4afbf8
mov ebx, dword [ebp + 0xc]
mov edx, eax
mov ebp, 0xff
nop
movzx eax, dx
mov ecx, esi
test byte [eax + ebx], 2
je 0x4afbf0
lea edi, [esi + 2]
mov dword [esp + 0x14], edi
mov esi, edi
movzx eax, word [edi]
mov ecx, edi
mov edx, eax
cmp ax, bp
jbe 0x4afbd0
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x54]
mov edx, ecx
sub edx, esi
sar edx, 1
cmp word [edi], 0x3a
mov dword [esp + 0x30], edx
jne 0x4afc4e
add ecx, 2
mov edi, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x14], edi
mov ebp, ecx
movzx eax, word [edi]
test ax, ax
je 0x4afc46
mov edx, eax
mov ebp, ecx
cmp dx, 0x29
je 0x4afc3e
lea edi, [ecx + 2]
mov dword [esp + 0x14], edi
mov ecx, edi
movzx eax, word [edi]
mov ebp, edi
mov edx, eax
test ax, ax
jne 0x4afc21
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
sub ebp, ecx
sar ebp, 1
mov dword [esp + 0x28], ebp
cmp word [edi], 0x29
jne 0x4afd48
xor ecx, ecx
mov ebp, 0x4c4c18
mov dword [esp + 0x44], ecx
mov eax, dword [ebp]
cmp edx, eax
jne 0x4afd2d
cmp dword [esp + 0x30], 0
jbe 0x4afc93
movzx ecx, word [esi]
lea esi, [esi + 2]
movzx eax, byte [ebx]
lea ebx, [ebx + 1]
dec edx
cmp cx, ax
jne 0x4afd1a
test edx, edx
jne 0x4afc75
mov ecx, dword [esp + 0x44]
lea eax, [ecx + ecx*2]
mov ecx, dword [eax*4 + 0x4c4c1c]
movzx edx, cx
mov esi, edx
cmp ecx, 0x98
jne 0x4afd6b
cmp dword [esp + 0x28], 0
jne 0x4b17fc
mov eax, dword [esp + 0x140]
mov edx, dword [esp + 0x18]
mov ecx, dword [eax + 0x20]
mov dword [eax + 0x58], 1
test ecx, ecx
je 0x4afceb
mov eax, 0x9a
mov word [edx], ax
mov ax, word [ecx + 4]
mov word [edx + 2], ax
add edx, 4
mov ecx, dword [ecx]
test ecx, ecx
jne 0x4afcd2
mov ecx, dword [esp + 0x140]
xor eax, eax
mov ebx, 0xffffffff
cmp dword [ecx + 0x48], eax
setg al
add eax, 0x98
mov word [edx], ax
mov eax, dword [esp + 0x50]
cmp eax, 0xfffffffe
cmove eax, ebx
mov dword [esp + 0x50], eax
jmp 0x4afe03
mov eax, dword [ebp]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x54]
inc ebx
inc ecx
add ebx, eax
mov dword [esp + 0x44], ecx
add ebp, 0xc
mov dword [esp + 0x40], ebx
cmp ebp, 0x4c4c84
jl 0x4afc63
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x3c
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov ebx, dword [esp + 0x28]
test ebx, ebx
jne 0x4afda3
test ecx, ecx
js 0x4b17d9
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x140]
mov word [eax], dx
mov eax, 0x94
cmp si, ax
jne 0x4afd9a
or dword [ecx + 0x50], 0x1000
mov edx, dword [esp + 0x18]
jmp 0x4afe03
mov eax, dword [eax*4 + 0x4c4c20]
movzx ecx, ax
mov edx, ecx
test eax, eax
js 0x4b17fc
mov esi, dword [esp + 0x18]
mov eax, 0x95
mov word [esi], cx
cmp dx, ax
jne 0x4afdd6
mov eax, dword [esp + 0x140]
or dword [eax + 0x50], 0x1000
lea eax, [ebx + ebx]
mov word [esi + 2], bx
push eax
push dword [esp + 0x30]
add esi, 4
push esi
mov dword [esp + 0x24], esi
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x14c]
mov edx, esi
add esp, 0xc
lea edx, [edx + ebx*2]
xor eax, eax
mov word [edx], ax
mov edi, dword [esp + 0x14]
add edx, 2
cmp dword [esp + 0x44], 9
mov dword [esp + 0x18], edx
jge 0x4afd48
mov ebp, dword [esp + 0x1c]
add edi, 2
mov ebx, dword [esp + 0x38]
movsd xmm2, qword [esp + 0xe8]
jmp 0x4ad39f
cmp eax, 0x3f
jne 0x4afb54
lea edi, [esi + 2]
mov dword [esp + 0x14], edi
mov ebp, edi
movzx ebx, word [edi]
mov dword [esp + 0x30], ebp
mov edx, ebx
lea eax, [ebx - 0x21]
cmp eax, 0x5b
ja case.0x4afe68.47
movzx eax, byte [eax + 0x4b1dc0]
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], ebp
jmp dword [eax*4 + 0x4b1d84]
lea ecx, [edi + 2]
mov edi, ecx
mov dword [esp + 0x14], edi
movzx eax, word [edi]
test ax, ax
je 0x4b181f
cmp ax, 0x29
je 0x4afe91
lea edi, [ecx + 2]
mov ecx, edi
jmp 0x4afe74
cmp word [edi], 0
je 0x4b181f
mov ecx, dword [esp + 0x140]
mov edx, dword [esp + 0x18]
add edi, 2
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x38]
movsd xmm2, qword [esp + 0xe8]
jmp 0x4ad39f
mov dword [esp + 0x40], 1
mov edx, dword [esp + 0x28]
lea eax, [edi + 2]
mov edi, dword [esp + 0x40]
mov ecx, 0x7d
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov word [eax], cx
mov dword [esp + 0x60], 0
jmp 0x4b0cd7
cmp word [edi + 2], 0x3f
mov dword [esp + 0x24], 0x81
jne 0x4aff30
movzx eax, word [edi + 4]
cmp eax, 0x3d
je 0x4aff11
cmp eax, 0x21
je 0x4aff11
cmp eax, 0x3c
jne 0x4aff30
mov eax, dword [esp + 0x18]
mov ecx, 0x81
mov edx, dword [esp + 0x28]
mov edi, edx
mov word [eax], cx
mov dword [esp + 0x60], 0
jmp 0x4b0cdf
mov ebx, dword [esp + 0x18]
mov eax, 0x87
mov dword [esp + 0x28], 2
mov dword [esp + 0x54], 0xffffffff
mov word [ebx + 4], ax
mov edi, dword [esp + 0x14]
movzx eax, word [edi + 2]
cmp eax, 0x52
jne 0x4aff7f
cmp word [edi + 4], 0x26
lea ecx, [edi + 4]
jne 0x4affa7
mov dword [esp + 0x14], ecx
mov eax, 0x89
mov word [ebx + 4], ax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x44], 0xffffffff
jmp 0x4affc5
cmp eax, 0x3c
jne 0x4aff95
add edi, 2
mov dword [esp + 0x44], 0x3e
mov dword [esp + 0x14], edi
jmp 0x4affc5
cmp eax, 0x27
jne 0x4affa7
add edi, 2
mov dword [esp + 0x44], eax
mov dword [esp + 0x14], edi
jmp 0x4affc5
xor ecx, ecx
mov dword [esp + 0x44], ecx
cmp eax, 0x2d
je 0x4affb7
cmp eax, 0x2b
jne 0x4affc5
add edi, 2
mov dword [esp + 0x14], edi
movzx eax, word [edi]
mov dword [esp + 0x54], eax
movzx eax, word [edi + 2]
lea ecx, [edi + 2]
mov edx, 0xff
mov dword [esp + 0x1c], ecx
cmp ax, dx
ja 0x4b189a
mov esi, dword [esp + 0x140]
mov ebp, dword [esi + 0xc]
test byte [eax + ebp], 0x10
je 0x4b189a
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x14], edi
mov esi, 0xff
mov dword [esp + 0x20], ebx
mov edx, ecx
movzx eax, word [edi]
cmp ax, si
ja 0x4b006d
mov ebx, ecx
mov ecx, eax
movzx esi, cx
mov edx, ebx
test byte [esi + ebp], 0x10
je 0x4b0065
mov edx, dword [esp + 0x20]
test edx, edx
js 0x4b004b
cmp cx, 0x30
jb 0x4b0043
cmp cx, 0x39
ja 0x4b0043
lea edx, [edx + edx*4]
lea edx, [edx - 0x18]
lea edx, [esi + edx*2]
mov dword [esp + 0x20], edx
jmp 0x4b004b
mov dword [esp + 0x20], 0xffffffff
lea edi, [ebx + 2]
mov esi, 0xff
mov dword [esp + 0x14], edi
mov ebx, edi
movzx eax, word [edi]
mov edx, edi
mov ecx, eax
cmp ax, si
jbe 0x4b0015
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov esi, edx
sub esi, ecx
mov ecx, dword [esp + 0x44]
sar esi, 1
mov dword [esp + 0x30], esi
test ecx, ecx
jle 0x4b0093
movzx eax, word [edi]
lea edi, [edx + 2]
mov dword [esp + 0x14], edi
mov edx, edi
cmp eax, ecx
jne 0x4b1874
mov ax, word [edi]
lea edi, [edx + 2]
mov dword [esp + 0x14], edi
cmp ax, 0x29
jne 0x4b1874
cmp dword [esp + 0x144], 0
jne 0x4b04c8
mov ecx, dword [esp + 0x54]
test ecx, ecx
jle 0x4b0126
test ebx, ebx
jle 0x4b1a67
mov eax, dword [esp + 0x140]
mov eax, dword [eax + 0x38]
cmp ecx, 0x2d
jne 0x4b00df
sub eax, ebx
lea ebx, [eax + 1]
jmp 0x4b00e1
add ebx, eax
test ebx, ebx
jle 0x4b1b1e
mov eax, dword [esp + 0x140]
cmp ebx, dword [eax + 0x3c]
jg 0x4b1b1e
mov ecx, dword [esp + 0x18]
mov edx, 0x81
mov edi, dword [esp + 0x40]
mov dword [esp + 0x1c], ecx
mov word [ecx], dx
mov edx, dword [esp + 0x28]
mov word [ecx + 6], bx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x60], 0
jmp 0x4b0cee
mov ecx, dword [esp + 0x140]
xor ebp, ebp
mov eax, dword [ecx + 0x2c]
mov ebx, dword [ecx + 0x28]
mov dword [esp + 0x54], eax
test eax, eax
jle 0x4b01b1
cmp dword [esp + 0x30], 0
mov edx, esi
mov edi, dword [esp + 0x1c]
lea esi, [ebx + 2]
jbe 0x4b0172
movzx ecx, word [edi]
lea edi, [edi + 2]
movzx eax, word [esi]
lea esi, [esi + 2]
dec edx
cmp cx, ax
jne 0x4b0191
test edx, edx
jne 0x4b0151
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x140]
cmp ebp, eax
jge 0x4b01ad
mov ax, word [ebx]
mov ebx, dword [esp + 0x18]
inc word [ebx + 4]
mov word [ebx + 6], ax
mov eax, dword [esp + 0x140]
jmp 0x4b02a8
mov ecx, dword [esp + 0x140]
inc ebp
mov esi, dword [esp + 0x30]
mov eax, dword [ecx + 0x30]
lea ebx, [ebx + eax*2]
mov eax, dword [esp + 0x54]
cmp ebp, eax
jge 0x4b01b1
jmp 0x4b0141
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x1c]
mov edx, ebx
shr eax, 3
push ecx
and eax, 1
push eax
push esi
call fcn.004ab8c0
add esp, 0xc
test eax, eax
jle 0x4b01e8
mov ebx, dword [esp + 0x18]
inc word [ebx + 4]
mov word [ebx + 6], ax
mov eax, dword [esp + 0x140]
jmp 0x4b02a8
cmp dword [esp + 0x44], 0
jne 0x4b1b1a
cmp word [ebx], 0x52
jne 0x4b0247
xor ecx, ecx
lea edx, [ecx + 1]
cmp esi, edx
jle 0x4b0229
movzx esi, word [ebx + edx*2]
lea eax, [esi - 0x30]
cmp ax, 9
ja 0x4b1b1a
lea ecx, [ecx + ecx*4]
mov eax, esi
inc edx
lea ecx, [ecx - 0x18]
lea ecx, [eax + ecx*2]
cmp edx, dword [esp + 0x30]
jl 0x4b0202
test ecx, ecx
jne 0x4b022e
mov ecx, 0xffff
mov ebx, dword [esp + 0x18]
mov eax, 0x89
mov word [ebx + 4], ax
mov eax, dword [esp + 0x140]
jmp 0x4b02a4
cmp esi, 6
jne 0x4b0284
mov edx, esi
mov esi, str.DEFINE
movzx ecx, word [ebx]
lea ebx, [ebx + 2]
movzx eax, byte [esi]
lea esi, [esi + 1]
dec edx
cmp cx, ax
jne 0x4b0284
test edx, edx
jne 0x4b0253
mov ebx, dword [esp + 0x18]
mov eax, 0x8b
mov edx, 1
mov word [ebx + 4], ax
mov eax, dword [esp + 0x140]
jmp 0x4b02ac
mov ecx, dword [esp + 0x20]
test ecx, ecx
jle 0x4b1842
mov eax, dword [esp + 0x140]
cmp ecx, dword [eax + 0x3c]
jg 0x4b1842
mov ebx, dword [esp + 0x18]
mov word [ebx + 6], cx
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x40]
mov ecx, 0x81
mov word [ebx], cx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x60], 0
mov dword [esp + 0x1c], ebx
jmp 0x4b0cee
mov eax, dword [esp + 0x140]
mov ecx, 0x77
mov edx, dword [esp + 0x28]
mov dword [esp + 0x24], 0x77
inc dword [eax + 0x48]
lea eax, [edi + 2]
mov dword [esp + 0x14], eax
mov edi, edx
mov eax, dword [esp + 0x18]
mov word [eax], cx
mov dword [esp + 0x60], 0
jmp 0x4b0cdf
lea eax, [edi + 2]
mov dword [esp + 0x14], eax
cmp word [eax], 0x29
jne 0x4b034b
mov edx, dword [esp + 0x18]
mov eax, 0x97
mov ecx, dword [esp + 0x140]
xor ebp, ebp
mov ebx, dword [esp + 0x38]
movsd xmm2, qword [esp + 0xe8]
mov word [edx], ax
add edx, 2
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], edx
add edi, 2
mov dword [esp + 0x1c], ebp
jmp 0x4ad39f
mov ecx, dword [esp + 0x18]
mov edx, 0x78
mov eax, dword [esp + 0x140]
mov dword [esp + 0x24], 0x78
mov dword [esp + 0x1c], ecx
inc dword [eax + 0x48]
mov word [ecx], dx
mov edx, dword [esp + 0x28]
mov edi, edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x60], 0
jmp 0x4b0cee
movzx eax, word [edi + 2]
mov ecx, eax
cmp ecx, 0x21
je 0x4b04af
cmp eax, 0x3d
je 0x4b049b
mov edx, 0xff
cmp ax, dx
ja 0x4b18c0
mov eax, dword [esp + 0x140]
mov eax, dword [eax + 0xc]
test byte [ecx + eax], 0x10
je 0x4b18c0
mov edx, ebx
lea esi, [edi + 2]
cmp dx, 0x3c
mov edi, esi
mov dword [esp + 0x44], esi
mov eax, 0x3e
mov dword [esp + 0x14], edi
mov ebx, 0x27
mov ecx, 0xff
cmove ebx, eax
mov ebp, esi
movzx eax, word [edi]
cmp ax, cx
ja 0x4b0429
mov esi, dword [esp + 0x140]
mov edx, ebp
mov ecx, eax
mov esi, dword [esi + 0xc]
nop dword [eax + eax]
movzx eax, cx
mov ebp, edx
test byte [eax + esi], 0x10
je 0x4b0425
lea edi, [edx + 2]
mov dword [esp + 0x14], edi
mov edx, edi
movzx eax, word [edi]
mov ebp, edi
mov ecx, eax
cmp ax, word [esp + 0xbc]
jbe 0x4b0400
mov esi, dword [esp + 0x44]
sub ebp, esi
sar ebp, 1
cmp dword [esp + 0x144], 0
mov dword [esp + 0x28], ebp
je 0x4b06d6
movzx eax, word [edi]
cmp eax, ebx
jne 0x4b1aad
mov edx, dword [esp + 0x140]
mov ecx, dword [edx + 0x2c]
cmp ecx, 0x2710
jge 0x4b1953
lea eax, [ebp + 2]
cmp eax, dword [edx + 0x30]
jle 0x4b086f
mov dword [edx + 0x30], eax
cmp ebp, 0x20
jle 0x4b086f
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x30
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov ecx, dword [esp + 0x140]
mov dword [esp + 0x24], 0x79
inc dword [ecx + 0x48]
jmp 0x4b04c1
mov eax, dword [esp + 0x140]
mov dword [esp + 0x24], 0x7a
inc dword [eax + 0x48]
lea eax, [edi + 4]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, ecx
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
mov word [edx], cx
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x140]
mov dword [esp + 0x60], 0
mov ebx, dword [edx + 0x54]
mov esi, dword [edx + 0x38]
mov edx, dword [esp + 0x28]
cmp ecx, 0x79
je 0x4b0536
mov ecx, dword [esp + 0x58]
xor edi, edi
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], ecx
cmp eax, 0x7a
jne 0x4b0cf8
mov ecx, 1
xor edi, edi
jmp 0x4b0cfa
mov edx, dword [esp + 0x28]
lea eax, [esi + 4]
mov dword [esp + 0x14], eax
mov ecx, 0x7b
mov eax, dword [esp + 0x18]
mov edi, edx
mov dword [esp + 0x24], 0x7b
mov word [eax], cx
mov dword [esp + 0x60], 0
jmp 0x4b0cdf
mov eax, dword [esp + 0x18]
mov ecx, 0x70
mov dword [esp + 0x68], eax
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0xb0], 1
mov word [eax], cx
add eax, 2
mov ecx, dword [esp + 0x14]
lea edi, [ecx + 2]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edi
movzx eax, word [edi]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], ecx
cmp eax, 0x30
jb 0x4b05de
mov esi, edi
mov edx, eax
cmp dx, 0x39
ja 0x4b05da
movzx eax, dx
lea ebx, [ebx + ebx*4]
lea edi, [esi + 2]
lea ebx, [ebx - 0x18]
mov dword [esp + 0x14], edi
mov esi, edi
lea ebx, [eax + ebx*2]
movzx eax, word [edi]
mov edx, eax
cmp eax, 0x30
jae 0x4b05b5
mov ecx, dword [esp + 0x70]
movzx eax, word [edi]
cmp eax, 0x29
je 0x4b0645
test ax, ax
je 0x4b18ea
cmp eax, 0x3a
je 0x4b05fc
xor ebx, ebx
mov edi, ecx
lea ecx, [edi + 2]
mov dword [esp + 0x6c], ecx
add edi, 2
mov dword [esp + 0x14], edi
movzx eax, word [edi]
test ax, ax
je 0x4b18ea
cmp eax, 0x29
jne 0x4b0603
sub edi, ecx
push 0
sar edi, 1
push edi
push ecx
mov ecx, 0x4eb958
call fcn.0042eac0
mov ebp, eax
test ebp, ebp
je 0x4b18e6
cmp byte [ebp + 0x51], 0
jne 0x4b18e6
mov edi, dword [esp + 0x14]
cmp ebx, 0xff
jg 0x4b190d
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x140]
movsd xmm2, qword [esp + 0xe8]
mov word [edx], bx
mov ebx, dword [esp + 0x38]
mov dword [edx + 2], ebp
xor ebp, ebp
mov eax, dword [esp + 0x14]
sub eax, dword [ecx + 0x18]
sar eax, 1
inc eax
mov dword [esp + 0x1c], ebp
mov word [edx + 6], ax
xor eax, eax
mov word [edx + 8], ax
add edx, 0xa
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], edx
add edi, 2
jmp 0x4ad39f
lea edi, [esi + 4]
mov dword [esp + 0x14], edi
movzx eax, word [edi]
cmp eax, 0x3d
je 0x4b06c0
cmp eax, 0x3e
je 0x4b06c0
cmp eax, 0x3c
jne 0x4b1930
mov edx, eax
jmp case.0x4afe68.36
xor edx, edx
mov ebp, 0x29
cmp eax, 0x3e
sete dl
mov dword [esp + 0x44], edx
jmp 0x4b0ff6
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0x30], ecx
mov ecx, eax
mov ebp, dword [eax + 0x28]
mov ebx, dword [ecx + 0x2c]
test ebx, ebx
jle 0x4b0801
mov eax, dword [esp + 0x28]
add eax, eax
mov dword [esp + 0x70], eax
mov ecx, esi
lea edx, [ebp + 2]
mov esi, eax
sub esi, 4
jb 0x4b0721
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4b0726
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4b0710
cmp esi, 0xfffffffc
je 0x4b075a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4b0753
cmp esi, 0xfffffffd
je 0x4b075a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4b0753
cmp esi, 0xfffffffe
je 0x4b075a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4b0753
cmp esi, 0xffffffff
je 0x4b075a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4b075a
sbb eax, eax
or eax, 1
jmp 0x4b075c
xor eax, eax
test eax, eax
jne 0x4b079b
mov eax, dword [esp + 0x28]
cmp word [ebp + eax*2 + 2], 0
jne 0x4b07c8
mov eax, dword [esp + 0x140]
mov ecx, dword [eax + 0x38]
movzx eax, word [ebp]
inc ecx
cmp eax, ecx
je 0x4b0791
test dword [esp + 0x4c], 0x80000
je 0x4b1976
mov dword [esp + 0x54], 1
jmp 0x4b079d
js 0x4b07c8
mov ecx, dword [esp + 0x140]
mov eax, dword [ecx + 0x30]
mov ebx, dword [ecx + 0x2c]
lea ebp, [ebp + eax*2]
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
cmp eax, ebx
jge 0x4b07fa
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x44]
jmp 0x4b0703
mov eax, dword [esp + 0x140]
sub ebx, dword [esp + 0x30]
mov eax, dword [eax + 0x30]
imul ebx, eax
lea eax, [eax*2]
add eax, ebp
add ebx, ebx
push ebx
push ebp
push eax
call sub.VCRUNTIME140.dll_memmove
mov edi, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0x140]
cmp dword [esp + 0x54], 0
jne 0x4b0838
mov ebx, dword [ecx + 0x2c]
xor edx, edx
mov esi, dword [ecx + 0x28]
test ebx, ebx
jle 0x4b0838
nop dword [eax]
cmp esi, ebp
je 0x4b082c
mov ecx, dword [ecx + 0x38]
movzx eax, word [esi]
inc ecx
cmp eax, ecx
je 0x4b1999
mov ecx, dword [esp + 0x140]
jmp 0x4b082d
dec edx
mov eax, dword [ecx + 0x30]
inc edx
lea esi, [esi + eax*2]
cmp edx, ebx
jl 0x4b0810
mov ax, word [ecx + 0x38]
mov ebx, dword [esp + 0x28]
inc ax
mov word [ebp], ax
lea eax, [ebx + ebx]
push eax
push dword [esp + 0x48]
lea eax, [ebp + 2]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor eax, eax
mov word [ebp + ebx*2 + 2], ax
mov eax, dword [esp + 0x140]
mov edi, dword [esp + 0x14]
mov ecx, dword [eax + 0x2c]
lea eax, [ecx + 1]
add edi, 2
mov ecx, dword [esp + 0x140]
mov dword [esp + 0x14], edi
mov dword [ecx + 0x2c], eax
mov ebx, dword [esp + 0x18]
mov edx, 1
inc dword [ecx + 0x38]
mov eax, dword [ecx + 0x38]
mov edi, dword [esp + 0x40]
mov word [ebx + 4], ax
mov eax, 0x7f
mov word [ebx], ax
mov esi, dword [ecx + 0x38]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x1c], ebx
mov ebx, dword [ecx + 0x54]
mov dword [esp + 0x60], 0
jmp 0x4b0cf4
mov ebp, 0x29
mov dword [esp + 0x44], 1
jmp 0x4b0ff6
lea edi, [esi + 4]
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], edi
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x54], 0x29
jmp 0x4b0a97
push 0
push ebx
push dword [ecx + 0x38]
mov ebx, dword [esp + 0x138]
lea ecx, [esp + 0x20]
mov edx, ebx
mov dword [esp + 0x78], edi
call fcn.004aabf0
add esp, 0xc
mov ecx, eax
cmp dword [ebx], 0
jne 0x4b16c3
test ecx, ecx
jns 0x4b14df
mov esi, ecx
neg esi
cmp esi, 0x1a
jne 0x4b094d
mov edi, dword [esp + 0x14]
cmp word [edi + 2], 0x5c
jne 0x4b0940
cmp word [edi + 4], 0x45
jne 0x4b0940
add edi, 4
jmp 0x4afe9b
mov dword [esp + 0x64], 1
jmp 0x4afe9b
cmp esi, 0x19
je 0x4b14d6
mov edx, dword [esp + 0x50]
cmp edx, 0xfffffffe
jne 0x4b0971
lea eax, [esi - 6]
cmp eax, 0x10
mov eax, 0xffffffff
cmovbe edx, eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x34], edx
mov dword [esp + 0x5c], eax
cmp esi, 0x1b
jne 0x4b0f9f
mov edi, dword [esp + 0x14]
mov ebp, 0x27
mov eax, dword [esp + 0x140]
add edi, 2
mov dword [esp + 0x14], edi
lea ebx, [edi + 2]
mov dword [esp + 0x20], ebx
mov ecx, dword [eax + 0x24]
mov eax, 0x3e
cmp word [edi], 0x3c
mov dword [esp + 0x58], ecx
cmove ebp, eax
movzx eax, word [ebx]
mov dword [esp + 0x54], ebp
cmp eax, 0x2b
je 0x4b0a4f
cmp eax, 0x2d
je 0x4b0a4f
movzx eax, word [edi + 2]
lea ebx, [edi + 2]
mov esi, 1
mov ecx, eax
test ax, ax
je 0x4b0a1d
movzx edx, cx
cmp edx, ebp
je 0x4b0a1d
mov eax, 0xff
cmp cx, ax
mov ecx, dword [esp + 0x140]
ja 0x4b0a3d
mov eax, dword [ecx + 0xc]
mov al, byte [edx + eax]
mov edx, 0
test al, 4
cmove esi, edx
test al, 0x10
je 0x4b0a24
movzx eax, word [ebx + 2]
add ebx, 2
mov ecx, eax
test ax, ax
jne 0x4b09e3
mov ecx, dword [esp + 0x140]
movzx eax, word [ebx]
cmp eax, ebp
je 0x4b0a41
mov eax, dword [esp + 0x12c]
mov dword [eax], 0x39
jmp 0x4afea2
xor esi, esi
jmp 0x4b0a24
test esi, esi
je 0x4b08c2
mov ebx, dword [esp + 0x20]
jmp 0x4b0a91
movzx eax, word [edi + 4]
lea ecx, [edi + 4]
mov edx, eax
cmp eax, 0x30
jb 0x4b0a74
nop dword [eax]
cmp dx, 0x39
ja 0x4b0a74
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
cmp eax, 0x30
jae 0x4b0a60
movzx eax, word [ecx]
cmp eax, ebp
je 0x4b0a8d
mov eax, dword [esp + 0x12c]
mov dword [eax], 0x39
jmp 0x4afe9b
mov dword [esp + 0x20], ebx
mov edi, ebx
mov dword [esp + 0x14], edi
movzx esi, word [edi]
mov ebp, esi
cmp esi, 0x2b
jne 0x4b0b36
lea edi, [ebx + 2]
mov dword [esp + 0x14], edi
movzx eax, word [edi]
cmp eax, 0x30
jb 0x4b19bc
cmp eax, 0x39
ja 0x4b19bc
mov dword [esp + 0x20], edi
movzx eax, word [edi]
xor ebx, ebx
cmp eax, 0x30
jb 0x4b0afc
mov edx, eax
cmp dx, 0x39
ja 0x4b0afc
mov edi, dword [esp + 0x20]
lea ebx, [ebx + ebx*4]
movzx eax, dx
lea ebx, [ebx - 0x18]
add edi, 2
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], edi
lea ebx, [eax + ebx*2]
movzx eax, word [edi]
mov edx, eax
cmp eax, 0x30
jae 0x4b0ad1
movzx eax, word [edi]
cmp eax, dword [esp + 0x54]
jne 0x4b1a8a
cmp esi, 0x2d
jne 0x4b0f7f
test ebx, ebx
je 0x4b1a67
mov ebp, dword [esp + 0x140]
mov eax, dword [ebp + 0x38]
sub eax, ebx
lea ebx, [eax + 1]
test ebx, ebx
jle 0x4b1b1e
jmp 0x4b11cb
cmp esi, 0x2d
jne 0x4b0ac5
movzx eax, word [edi + 2]
mov edx, esi
mov dword [esp + 0x30], ebx
cmp eax, 0x30
jb 0x4b0b5f
mov dword [esp + 0x30], ebx
cmp eax, 0x39
ja 0x4b0b5f
lea edi, [ebx + 2]
mov dword [esp + 0x14], edi
jmp 0x4b0ac1
mov ebp, dword [esp + 0x30]
xor eax, eax
lea ecx, [esp + 0x54]
xor ebx, ebx
mov dword [esp + 0x44], eax
mov dword [esp + 0x54], ebx
cmp dx, 0x29
je 0x4b0c05
mov esi, ebp
nop
mov dword [esp + 0x30], esi
cmp dx, 0x3a
je 0x4b0bfd
movzx eax, dx
lea edi, [esi + 2]
sub eax, 0x2d
mov dword [esp + 0x30], edi
mov dword [esp + 0x14], edi
cmp eax, 0x4b
ja case.0x4b0baf.46
movzx eax, byte [eax + 0x4b1e40]
jmp dword [eax*4 + 0x4b1e1c]
lea ecx, [esp + 0x44]
jmp 0x4b0bf1
mov eax, dword [esp + 0x140]
or dword [ecx], 0x80000
or dword [eax + 0x50], 0x400
jmp 0x4b0bf1
or dword [ecx], 1
jmp 0x4b0bf1
or dword [ecx], 2
jmp 0x4b0bf1
or dword [ecx], 4
jmp 0x4b0bf1
or dword [ecx], 8
jmp 0x4b0bf1
or dword [ecx], 0x200
jmp 0x4b0bf1
or dword [ecx], 0x40
movzx eax, word [edi]
mov esi, edi
mov edx, eax
cmp eax, 0x29
jne 0x4b0b80
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x44]
or ebx, dword [esp + 0x4c]
not eax
and ebx, eax
cmp word [edi], 0x29
mov dword [esp + 0x2c], ebx
jne 0x4b0cb8
mov ecx, dword [esp + 0x140]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 0x14]
add eax, 4
cmp edx, eax
jne 0x4b0c6b
mov eax, dword [esp + 0x144]
test eax, eax
je 0x4b0c40
cmp dword [eax], 4
jne 0x4b0c6b
mov eax, dword [esp + 0xd8]
xor ebp, ebp
movsd xmm2, qword [esp + 0xe8]
add edi, 2
mov dword [ecx + 0x4c], ebx
mov dword [esp + 0x4c], ebx
mov dword [eax], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x1c], ebp
jmp 0x4ad39f
movsd xmm2, qword [esp + 0xe8]
mov eax, ebx
shr eax, 9
xor ebp, ebp
and eax, 1
mov dword [esp + 0x4c], ebx
mov dword [esp + 0xb4], eax
xor eax, 1
mov dword [esp + 0xb8], eax
mov eax, ebx
and eax, 1
mov dword [esp + 0x1c], ebp
shl eax, 0x1c
add edi, 2
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xd8]
mov dword [eax], ebx
mov ebx, dword [esp + 0x38]
jmp 0x4ad39f
mov eax, dword [esp + 0x30]
xor edi, edi
add eax, 2
mov ecx, 0x7d
mov dword [esp + 0x14], eax
xor edx, edx
mov eax, dword [esp + 0x18]
mov word [eax], cx
mov dword [esp + 0x60], edx
mov dword [esp + 0x24], 0x7d
mov dword [esp + 0x48], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x140]
mov esi, dword [eax + 0x38]
mov ebx, dword [eax + 0x54]
mov ebp, dword [esp + 0x2c]
xor ecx, ecx
cmp dword [esp + 0x144], 0
lea eax, [esp + 0x60]
mov dword [esp + 0x70], 0
cmove eax, dword [esp + 0x70]
push eax
push dword [esp + 0x144]
lea eax, [esp + 0x7c]
push dword [esp + 0x140]
push eax
lea eax, [esp + 0xac]
push eax
xor eax, eax
cmp dword [esp + 0x38], 0x81
sete al
add eax, dword [esp + 0x150]
push eax
push edx
push edi
mov edi, dword [esp + 0x14c]
lea eax, [esp + 0x34]
push ecx
push edi
push eax
lea edx, [esp + 0x74]
mov ecx, ebp
call fcn.004b1e90
add esp, 0x2c
test eax, eax
je 0x4b16c3
mov ebp, dword [esp + 0x24]
cmp ebp, 0x7b
jne 0x4b0e1b
mov eax, dword [esp + 0x140]
cmp dword [eax + 0x38], esi
jg 0x4b0d8f
mov eax, dword [esp + 0x18]
mov ecx, 0x7c
mov word [eax], cx
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x14]
cmp word [edi], 0x29
jne 0x4b1a44
mov edx, dword [esp + 0x144]
test edx, edx
je 0x4b0ea2
mov esi, dword [esp + 0x60]
mov ecx, 0x7fffffeb
mov edx, dword [edx]
sub ecx, edx
lea eax, [esi - 4]
cmp ecx, eax
jl 0x4b1ba3
mov ecx, dword [esp + 0x144]
lea eax, [esi - 4]
mov ebp, dword [esp + 0x1c]
add eax, edx
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x38]
movsd xmm2, qword [esp + 0xe8]
mov dword [ecx], eax
mov eax, 2
mov ecx, dword [esp + 0x140]
mov dword [edx + 2], 0x720002
mov word [edx + 6], ax
add edx, 8
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], edx
add edi, eax
jmp 0x4ad39f
cmp ebp, 0x7a
ja 0x4b0e2f
mov eax, dword [esp + 0x140]
dec dword [eax + 0x48]
jmp 0x4b0d8f
cmp ebp, 0x81
jne 0x4b0d8f
cmp dword [esp + 0x144], 0
jne 0x4b0d8f
mov esi, dword [esp + 0x18]
xor edx, edx
mov ecx, esi
movzx eax, word [ecx + 2]
inc edx
cmp word [ecx + eax*2], 0x72
lea ecx, [ecx + eax*2]
jne 0x4b0e51
mov eax, 0x8b
cmp word [esi + 4], ax
jne 0x4b0e7b
cmp edx, 1
jg 0x4b1a04
mov ebp, eax
jmp 0x4b0d8f
cmp edx, 2
jg 0x4b1a24
cmp edx, 1
jne 0x4b0d8f
or eax, 0xffffffff
or ecx, eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x9c], ecx
jmp 0x4b0d9a
mov edx, dword [esp + 0x48]
mov dword [esp + 0x18], edx
cmp ebp, 0x8b
je 0x4aeaf4
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x34], esi
mov dword [esp + 0xa8], 0
cmp ebp, 0x7b
jb 0x4b0f4a
cmp esi, 0xfffffffe
jne 0x4b0f0e
test ecx, ecx
js 0x4b0efc
mov dword [esp + 0x50], ecx
mov dword [esp + 0xa8], 1
mov dword [esp + 0x34], 0xffffffff
jmp 0x4b0f1e
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0x34], 0xffffffff
jmp 0x4b0f1e
test ecx, ecx
js 0x4b0f1e
test eax, eax
jns 0x4b0f26
mov eax, ecx
or eax, ebx
mov dword [esp + 0x74], eax
test eax, eax
js 0x4aeaf4
mov ecx, dword [esp + 0x140]
add edi, 2
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x38]
movsd xmm2, qword [esp + 0xe8]
mov dword [esp + 0x3c], eax
jmp 0x4ad39f
cmp ebp, 0x77
jne 0x4aeaf4
test eax, eax
js 0x4aeaf4
mov ecx, dword [esp + 0x140]
add edi, 2
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x38]
movsd xmm2, qword [esp + 0xe8]
mov dword [esp + 0x3c], eax
jmp 0x4ad39f
cmp ebp, 0x2b
jne 0x4b11c4
test ebx, ebx
je 0x4b1a67
mov ebp, dword [esp + 0x140]
add ebx, dword [ebp + 0x38]
jmp 0x4b11cb
cmp esi, 0x1c
jne 0x4b1339
mov edi, dword [esp + 0x14]
movzx eax, word [edi + 2]
cmp eax, 0x3c
je 0x4b0fca
cmp eax, 0x27
je 0x4b0fca
cmp eax, 0x7b
je 0x4b0fca
mov dword [ebx], 0x45
jmp 0x4afe9b
add edi, 2
mov dword [esp + 0x44], 0
mov dword [esp + 0x14], edi
movzx eax, word [edi]
cmp eax, 0x3c
jne 0x4b0fe6
lea ebp, [eax + 2]
jmp 0x4b0ff6
cmp eax, 0x27
mov ebp, 0x7d
mov eax, 0x27
cmove ebp, eax
add edi, 2
mov edx, 0xff
mov dword [esp + 0x14], edi
mov ecx, edi
mov dword [esp + 0x40], ecx
mov ebx, ecx
movzx eax, word [edi]
cmp ax, dx
ja 0x4b1049
mov esi, dword [esp + 0x140]
mov edx, eax
mov esi, dword [esi + 0xc]
nop
movzx eax, dx
mov ebx, ecx
test byte [eax + esi], 0x10
je 0x4b1045
lea edi, [ecx + 2]
mov dword [esp + 0x14], edi
mov ecx, edi
movzx eax, word [edi]
mov ebx, edi
mov edx, eax
cmp ax, word [esp + 0xbc]
jbe 0x4b1020
mov ecx, dword [esp + 0x40]
sub ebx, ecx
sar ebx, 1
cmp dword [esp + 0x144], 0
je 0x4b10b1
test ebx, ebx
je 0x4b1ad0
movzx eax, word [edi]
cmp eax, ebp
jne 0x4b1aad
cmp ebx, 0x20
jg 0x4b0478
mov eax, dword [esp + 0x4c]
mov edx, ecx
mov ebp, dword [esp + 0x140]
push ecx
shr eax, 3
mov ecx, ebp
and eax, 1
mov esi, dword [ebp + 0x1c]
push eax
push ebx
mov dword [ebp + 0x1c], edi
call fcn.004ab8c0
mov ebx, eax
mov dword [ebp + 0x1c], esi
add esp, 0xc
test ebx, ebx
jns 0x4b1165
xor ebx, ebx
jmp 0x4b1165
mov ecx, dword [esp + 0x140]
xor eax, eax
mov dword [esp + 0x30], eax
mov ebp, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [esp + 0x54], ecx
test ecx, ecx
jle 0x4b1139
mov edi, dword [esp + 0x40]
mov edx, ebx
lea esi, [ebp + 2]
test ebx, ebx
je 0x4b10fe
nop dword [eax]
movzx ecx, word [edi]
lea edi, [edi + 2]
movzx eax, word [esi]
lea esi, [esi + 2]
dec edx
cmp cx, ax
jne 0x4b111a
test edx, edx
jne 0x4b10e0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
cmp word [ebp + ebx*2 + 2], 0
jne 0x4b111e
cmp eax, ecx
jge 0x4b1139
movzx ebx, word [ebp]
mov ebp, dword [esp + 0x140]
jmp 0x4b1165
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x140]
mov eax, dword [eax + 0x30]
lea ebp, [ebp + eax*2]
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
cmp eax, ecx
jl 0x4b10d0
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x140]
mov edx, dword [esp + 0x40]
push ecx
shr eax, 3
mov ecx, ebp
and eax, 1
push eax
push ebx
call fcn.004ab8c0
mov ebx, eax
add esp, 0xc
test ebx, ebx
jle 0x4b1b1a
cmp dword [esp + 0x44], 0
jne 0x4b11cb
mov edx, dword [esp + 0x50]
cmp edx, 0xfffffffe
mov eax, 0xffffffff
cmove edx, eax
test byte [esp + 0x4c], 1
mov dword [esp + 0x50], edx
mov eax, 0
mov edx, dword [esp + 0x18]
setne al
add eax, 0x6d
mov ebp, edx
mov dword [esp + 0x1c], ebp
mov word [edx], ax
mov word [edx + 2], bx
add edx, 4
mov dword [esp + 0x18], edx
cmp ebx, 0x20
jge 0x4b134e
mov esi, 1
mov ecx, ebx
mov eax, esi
shl eax, cl
jmp 0x4b1355
mov ebp, dword [esp + 0x140]
cmp dword [esp + 0x144], 0
mov eax, dword [esp + 0x18]
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x1c], eax
jne 0x4b12db
xor ecx, ecx
mov word [eax], cx
test ebx, ebx
je 0x4b11ff
mov ecx, dword [ebp + 0x14]
push ebx
call fcn.004abd60
mov edi, eax
add esp, 4
mov eax, dword [esp + 0x18]
test edi, edi
jne 0x4b127d
mov eax, dword [esp + 0x4c]
xor edx, edx
push ecx
shr eax, 3
mov ecx, ebp
and eax, 1
push eax
push ebx
call fcn.004ab8c0
add esp, 0xc
test eax, eax
js 0x4b1b1a
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x34]
lea edi, [eax + ebx*2]
mov eax, dword [ebp + 0x10]
lea eax, [eax + ecx*2]
add eax, 0xffffff38
cmp dword [ebp + 0x24], eax
jb 0x4b1259
mov ecx, ebp
call fcn.004aaac0
mov ecx, dword [esp + 0x12c]
mov dword [ecx], eax
test eax, eax
jne 0x4b16c3
mov edx, dword [esp + 0x18]
mov ecx, edx
sub ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x24]
add ecx, 2
sar ecx, 1
mov word [eax], cx
mov ecx, dword [esp + 0x140]
add dword [ecx + 0x24], 2
jmp 0x4b12e6
cmp word [edi + 2], 0
jne 0x4b12db
cmp dword [esp + 0x13c], 0
jg 0x4b12db
mov ecx, dword [esp + 0x138]
mov esi, ecx
test ecx, ecx
je 0x4b1af3
nop word [eax + eax]
mov ecx, dword [esi + 4]
cmp ecx, edi
jb 0x4b1af3
push ebp
push ecx
mov edx, eax
call fcn.004abf00
add esp, 8
test eax, eax
je 0x4b12db
mov esi, dword [esi]
test esi, esi
je 0x4b1af3
mov eax, dword [esp + 0x18]
jmp 0x4b12b0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x140]
mov ebp, dword [esp + 0x1c]
mov eax, 0x6f
mov word [edx], ax
sub edi, dword [ecx + 0x14]
sar edi, 1
mov word [edx + 2], di
add edx, 4
cmp dword [esp + 0x50], 0xfffffffe
mov dword [esp + 0x18], edx
mov dword [esp + 0xa8], 0
jne 0x4b15e3
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x38]
add edi, 2
movsd xmm2, qword [esp + 0xe8]
mov dword [esp + 0x50], 0xffffffff
jmp 0x4ad39f
cmp esi, 0x23
jl 0x4b13c4
mov ebx, 0xffffffdd
sub ebx, ecx
jmp 0x4b1174
mov eax, 1
mov esi, eax
mov ecx, dword [esp + 0x140]
or dword [ecx + 0x44], eax
cmp ebx, dword [ecx + 0x40]
jle 0x4b1367
mov dword [ecx + 0x40], ebx
mov ecx, dword [ecx + 0x20]
test ecx, ecx
je 0x4b15dc
movzx eax, word [ecx + 4]
cmp eax, ebx
je 0x4b13a0
mov ecx, dword [ecx]
test ecx, ecx
jne 0x4b1372
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x140]
add edi, 2
mov ebx, dword [esp + 0x38]
movsd xmm2, qword [esp + 0xe8]
jmp 0x4ad39f
mov ebx, dword [esp + 0x38]
movsd xmm2, qword [esp + 0xe8]
mov word [ecx + 6], si
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x140]
add edi, 2
jmp 0x4ad39f
cmp esi, 0xf
je 0x4b1455
cmp esi, 0x10
je 0x4b1455
mov edx, dword [esp + 0x18]
lea eax, [esi - 0x1d]
cmp eax, 5
ja 0x4b141c
mov ebx, dword [esp + 0x14]
lea eax, [ecx*4 + 0x74]
mov ebp, dword [esp + 0x1c]
mov ecx, 0x4c3d88
movsd xmm2, qword [esp + 0xe8]
sub ecx, eax
add ebx, 2
mov dword [esp + 0x38], ebx
mov edi, dword [ecx]
mov ecx, dword [esp + 0x140]
sub edi, 2
add edi, 2
jmp 0x4ad39f
mov ecx, dword [esp + 0x140]
lea eax, [esi - 6]
mov ebx, dword [esp + 0x38]
xor ebp, ebp
movsd xmm2, qword [esp + 0xe8]
cmp eax, 0x10
mov word [edx], si
mov edi, dword [esp + 0x14]
cmovbe ebp, edx
add edx, 2
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], edx
add edi, 2
jmp 0x4ad39f
lea eax, [esp + 0xe0]
push ebx
push eax
lea edx, [esp + 0xe4]
lea ecx, [esp + 0x1c]
call fcn.004ab2d0
add esp, 8
test eax, eax
js 0x4b16c3
mov ebx, dword [esp + 0x18]
xor ecx, ecx
movsd xmm2, qword [esp + 0xe8]
cmp esi, 0x10
mov ebp, ebx
sete cl
mov dword [esp + 0x1c], ebp
xor edx, edx
cmp ecx, dword [esp + 0xdc]
mov ecx, dword [esp + 0x140]
setne dl
add edx, 0xf
mov word [ebx], dx
mov edx, ebx
mov ebx, dword [esp + 0x38]
mov word [edx + 2], ax
mov ax, word [esp + 0xe0]
mov word [edx + 4], ax
add edx, 6
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], edx
add edi, 2
jmp 0x4ad39f
mov edi, dword [esp + 0x14]
jmp 0x4afe9b
cmp ecx, 0xffff
jle 0x4ae9ab
mov eax, ecx
and eax, 0xf800
cmp eax, 0xd800
je 0x4ae9a6
cmp ecx, 0x110000
jae 0x4ae9a6
cmp ecx, 0xffff
jbe 0x4ae9ab
add ecx, 0xffff0000
mov ebx, ecx
and ecx, 0x3ff
shr ebx, 0xa
or ebx, 0xd800
or ecx, 0xdc00
mov word [esp + 0xc0], bx
mov word [esp + 0xc2], cx
jmp 0x4ae939
mov ecx, dword [esp + 0x140]
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x5c], esi
cmp eax, 0xfffffffe
jne 0x4b15fc
mov dword [esp + 0x34], 0xffffffff
cmp edx, 1
je 0x4b15a4
cmp dword [esp + 0x78], 0
je 0x4b15a4
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add edi, 2
mov ebx, dword [esp + 0x38]
movsd xmm2, qword [esp + 0xe8]
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x50], 0xffffffff
jmp 0x4ad39f
movzx eax, bx
or eax, dword [esp + 0x78]
cmp edx, 1
mov edx, dword [esp + 0x18]
mov dword [esp + 0x50], eax
je 0x4b15e3
movzx esi, word [edx - 2]
or esi, dword [ecx + 0x54]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x38]
add edi, 2
movsd xmm2, qword [esp + 0xe8]
mov dword [esp + 0x3c], esi
jmp 0x4ad39f
mov ecx, dword [esp + 0x140]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x38]
add edi, 2
movsd xmm2, qword [esp + 0xe8]
jmp 0x4ad39f
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x78]
cmp edx, 1
je 0x4b162a
test eax, eax
je 0x4b162a
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add edi, 2
mov ebx, dword [esp + 0x38]
movsd xmm2, qword [esp + 0xe8]
jmp 0x4ad39f
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x38]
movsd xmm2, qword [esp + 0xe8]
movzx esi, word [edx - 2]
or esi, dword [ecx + 0x54]
or esi, eax
add edi, 2
mov dword [esp + 0x3c], esi
jmp 0x4ad39f
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x40
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x1f
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 7
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov dword [eax], 0x47
mov esi, dword [esp + 0x128]
xor eax, eax
mov edi, dword [esp + 0x14]
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 8
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 6
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
cmp word [edi + 2], 0x3a
mov ecx, 0xd
mov esi, dword [esp + 0x128]
mov eax, 0x1f
cmove eax, ecx
mov ecx, dword [esp + 0x12c]
mov dword [esi], edi
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 5
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 4
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0xb
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov esi, dword [esp + 0x128]
mov dword [eax], 9
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x42
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x3b
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x12
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov esi, dword [esp + 0x128]
test ecx, ecx
mov ecx, dword [esp + 0x12c]
mov eax, 0xf
mov edi, dword [esp + 0x14]
mov edx, 0x23
cmove eax, edx
mov dword [esi], edi
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
add edi, 0xfffffffe
mov esi, dword [esp + 0x128]
mov dword [eax], 0x1a
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
add edi, 2
mov esi, dword [esp + 0x128]
mov dword [eax], 0x1c
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
lea edi, [esi + 4]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x18
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x27
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x26
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x29
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x31
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x2b
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x41
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x3f
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov edi, esi
mov esi, dword [esp + 0x128]
mov dword [eax], 0xc
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov esi, dword [esp + 0x128]
xor eax, eax
mov dword [edi], 0x36
mov edi, dword [esp + 0x14]
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov esi, dword [esp + 0x128]
xor eax, eax
mov dword [edi], 0x1b
mov edi, dword [esp + 0x14]
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0xe
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x3a
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x1d
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x2a
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0x3e
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov edi, dword [esp + 0x14]
mov dword [eax], 0x28
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov dword [eax], 0xf
xor eax, eax
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x128]
mov ebx, dword [esp + 0x144]
mov dword [eax], ecx
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x3c]
mov dword [esi], edi
mov dword [eax], ecx
mov eax, dword [esp + 0xe4]
mov dword [eax], edx
test ebx, ebx
je 0x4b1b93
sub edx, dword [esp + 0xa4]
mov ecx, 0x7fffffeb
mov eax, dword [ebx]
sub ecx, eax
sar edx, 1
cmp ecx, edx
jl 0x4b1baa
lea ecx, [edx + eax]
mov dword [ebx], ecx
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov esi, dword [esp + 0x128]
mov eax, dword [esp + 0x12c]
mov dword [esi], edi
mov dword [eax], 0x14
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [esp + 0x12c]
mov dword [eax], 0x34
mov esi, dword [esp + 0x128]
mov dword [esi], edi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret