Function at 0x47acd0
Capabilities:
Authenticate hmac
Encode data using base64
Parse credit card information

Disassembly:
sub esp, 0xd4
push ebx
mov ebx, dword [esp + 0xdc]
mov eax, edx
push ebp
push esi
mov dword [esp + 0xb8], eax
xor esi, esi
mov ebx, dword [ebx]
xor edx, edx
mov dword [esp + 0xb4], ecx
mov ebp, 0xfffffffe
mov ecx, dword [ecx]
mov dword [esp + 0xa8], esi
mov dword [esp + 0x64], esi
mov esi, dword [eax]
mov eax, ecx
shr eax, 9
and eax, 1
mov dword [esp + 0x40], 0
mov dword [esp + 0xac], eax
xor eax, 1
mov dword [esp + 0xb0], eax
mov eax, ecx
and eax, 1
mov dword [esp + 0x5c], 0
shl eax, 0x1c
push edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0xa8], esi
mov dword [esp + 0x38], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x64], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x58], 0xfffffffe
mov dword [esp + 0x40], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x9c], eax
mov edi, dword [esp + 0x100]
mov dword [esp + 0x10], ebx
movzx edx, byte [ebx]
mov dword [esp + 0x18], edx
mov eax, dword [edi + 0x34]
add eax, 0xffffff9c
add eax, dword [edi + 0x10]
cmp dword [esp + 0x104], 0
je 0x47ae6b
cmp esi, eax
ja 0x47e0a0
cmp esi, dword [esp + 0x94]
mov eax, dword [esp + 0x104]
cmovb esi, dword [esp + 0x94]
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x14]
mov esi, dword [eax]
mov eax, 0x7fffffeb
sub ecx, dword [esp + 0x94]
sub eax, esi
cmp eax, ecx
jl 0x47db2f
sub esi, dword [esp + 0x94]
mov eax, dword [esp + 0x104]
add esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov dword [eax], esi
test ecx, ecx
je 0x47ae57
mov esi, dword [esp + 0x14]
cmp ecx, dword [esp + 0xa8]
jbe 0x47ae62
mov ebx, dword [esp + 0xa8]
mov eax, esi
sub eax, ecx
push eax
push ecx
push ebx
call fcn.00486480
mov edx, dword [esp + 0x24]
mov eax, ebx
sub eax, dword [esp + 0x30]
add esp, 0xc
add esi, eax
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], esi
mov dword [esp + 0x94], esi
jmp 0x47ae74
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x14], esi
mov dword [esp + 0x94], esi
jmp 0x47ae74
cmp dword [edi + 0x24], eax
ja 0x47e0a0
cmp dword [esp + 0x38], 0
je 0x47af57
test edx, edx
je 0x47af57
cmp edx, 0x5c
jne 0x47aea1
cmp byte [ebx + 1], 0x45
jne 0x47aea1
inc ebx
mov dword [esp + 0x38], 0
inc ebx
jmp 0x47ad90
mov ebp, dword [esp + 0x64]
test ebp, ebp
je 0x47aedc
cmp dword [esp + 0x104], 0
jne 0x47aed4
movzx ecx, byte [ebp + 6]
movzx eax, byte [ebp + 7]
shl ecx, 8
or ecx, eax
sub ebx, ecx
sub ebx, dword [edi + 0x18]
mov eax, ebx
mov byte [ebp + 9], bl
sar eax, 8
mov byte [ebp + 8], al
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x64], 0
test dword [esp + 0x2c], 0x4000
je case.0x47b0cb.1
mov word [esi], 0xff70
mov eax, ebx
mov dword [esi + 2], 0
sub eax, dword [edi + 0x18]
sar eax, 8
mov byte [esi + 6], al
lea eax, [esi + 0xa]
sub bl, byte [edi + 0x18]
mov dword [esp + 0x64], esi
mov byte [esi + 7], bl
mov word [esi + 8], 0
mov dword [esp + 0x14], eax
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x14]
test byte [esp + 0x2c], 1
mov dword [esp + 0x24], esi
setne al
add al, 0x1d
mov byte [esi], al
mov byte [esi + 1], dl
add esi, 2
mov dword [esp + 0x14], esi
cmp dl, 0xd
je 0x47af44
cmp dl, 0xa
jne 0x47dade
mov edi, dword [esp + 0x100]
or dword [edi + 0x50], 0x800
jmp 0x47dae5
cmp edx, 0x2a
je 0x47afcc
cmp edx, 0x2b
je 0x47afcc
cmp edx, 0x3f
je 0x47afcc
cmp edx, 0x7b
jne 0x47af77
lea ecx, [ebx + 1]
call fcn.00478f80
test eax, eax
jne 0x47afcc
xor esi, esi
cmp dword [esp + 0x64], esi
je 0x47afd1
mov ecx, dword [esp + 0xac]
mov eax, ecx
dec ecx
mov dword [esp + 0xac], ecx
test eax, eax
jg 0x47afd1
cmp dword [esp + 0x104], esi
jne 0x47afc6
mov eax, dword [esp + 0x64]
movzx ecx, byte [eax + 6]
movzx eax, byte [eax + 7]
shl ecx, 8
or ecx, eax
sub ebx, ecx
mov ecx, dword [esp + 0x64]
sub ebx, dword [edi + 0x18]
mov eax, ebx
sar eax, 8
mov byte [ecx + 8], al
mov byte [ecx + 9], bl
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x64], esi
jmp 0x47afd1
mov esi, 1
mov ecx, dword [esp + 0x2c]
test cl, 8
je 0x47b03e
mov eax, dword [edi + 0xc]
test byte [edx + eax], 1
jne 0x47d285
cmp edx, 0x23
jne 0x47b03e
inc ebx
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
mov byte [esp + 0x57], al
test al, al
je 0x47b03c
jmp 0x47b000
mov edx, dword [edi + 0x60]
test edx, edx
je 0x47b080
mov ecx, dword [edi + 0x1c]
cmp ebx, ecx
jae 0x47b0a2
push 0
lea eax, [edi + 0x64]
push eax
push ecx
mov ecx, ebx
call fcn.00485420
add esp, 0xc
test eax, eax
je 0x47b0a2
dec ebx
add ebx, dword [edi + 0x64]
mov dword [esp + 0x10], ebx
cmp byte [ebx], 0
jne 0x47d285
mov ecx, dword [esp + 0x2c]
xor edx, edx
test ecx, 0x4000
je 0x47b0b7
test esi, esi
jne 0x47b0b7
mov eax, dword [esp + 0x14]
lea ecx, [eax + 1]
mov dword [esp + 0x64], eax
mov byte [eax], 0x70
mov eax, ebx
mov byte [ecx], 0xff
mov dword [ecx + 1], esi
sub eax, dword [edi + 0x18]
sar eax, 8
mov byte [ecx + 5], al
sub bl, byte [edi + 0x18]
mov byte [ecx + 6], bl
mov word [ecx + 7], si
add ecx, 9
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
jmp 0x47b0bb
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x64]
sub eax, ecx
cmp ebx, eax
ja 0x47b0a2
mov al, byte [esp + 0x57]
cmp al, byte [edi + 0x68]
jne 0x47b0a2
cmp ecx, 1
je 0x47b027
mov al, byte [ebx + 1]
cmp al, byte [edi + 0x69]
je 0x47b027
inc ebx
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
mov byte [esp + 0x57], al
test al, al
jne 0x47b000
jmp 0x47b038
mov ecx, dword [esp + 0x14]
cmp edx, 0x7c
ja case.0x47b0cb.1
movzx eax, byte [edx + 0x47e0f8]
jmp dword [eax*4 + 0x47e0c4]
test byte [esp + 0x2c], 2
mov esi, dword [esp + 0x14]
mov dword [esp + 0x24], 0
je 0x47b10a
mov edx, dword [esp + 0x30]
mov eax, 0xffffffff
cmp edx, 0xfffffffe
mov byte [esi], 0x1a
mov ebx, dword [esp + 0x10]
cmove edx, eax
inc esi
mov dword [esp + 0x30], edx
inc ebx
mov dword [esp + 0x14], esi
jmp 0x47ad90
mov byte [esi], 0x19
inc esi
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], esi
inc ebx
jmp 0x47ad90
test byte [esp + 0x2c], 2
mov esi, dword [esp + 0x14]
setne al
mov dword [esp + 0x24], 0
add al, 0x1b
mov byte [esi], al
inc esi
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], esi
inc ebx
jmp 0x47ad90
mov ecx, dword [esp + 0x30]
mov eax, 0xffffffff
mov esi, dword [esp + 0x14]
cmp ecx, 0xfffffffe
mov dword [esp + 0x24], esi
cmove ecx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x58], eax
mov ebp, ecx
mov eax, dword [esp + 0x2c]
shr eax, 2
and al, 1
mov dword [esp + 0x30], ecx
or al, 0xc
mov dword [esp + 0x40], ebp
mov byte [esi], al
inc esi
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], esi
inc ebx
jmp 0x47ad90
test dword [edi + 0x4c], 0x2000000
je case.0x47b0cb.1
mov eax, dword [esp + 0xec]
mov dword [eax], 0x40
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov al, byte [ebx + 1]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x24], esi
cmp al, 0x3a
je 0x47b1cf
cmp al, 0x2e
je 0x47b1cf
cmp al, 0x3d
jne 0x47b1e2
lea edx, [esp + 0x6c]
mov ecx, ebx
call fcn.0047a3b0
test eax, eax
jne 0x47dc1c
xor ecx, ecx
mov dword [esp + 0x1c], ecx
inc ebx
mov dword [esp + 0x10], ebx
movzx edx, byte [ebx]
mov dword [esp + 0x18], edx
cmp edx, 0x5c
jne 0x47b220
inc ebx
cmp byte [ebx], 0x45
je 0x47b1e8
push 3
push 0x4a64bc
push ebx
call fcn.00489070
mov ebx, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x47b22e
mov ecx, dword [esp + 0x1c]
add ebx, 3
jmp 0x47b1e8
test ecx, ecx
jne 0x47b287
cmp edx, 0x5e
jne 0x47b287
lea ecx, [edx - 0x5d]
jmp 0x47b1e4
mov edx, dword [esp + 0x18]
xor eax, eax
xor edi, edi
xorps xmm0, xmm0
mov dword [esp + 0x28], eax
xor ebp, ebp
mov dword [esp + 0x58], edi
movdqu xmmword [esp + 0x70], xmm0
movdqu xmmword [esp + 0x80], xmm0
test edx, edx
je 0x47dbf9
mov esi, dword [esp + 0x38]
mov edi, edi
test esi, esi
je 0x47b2ce
cmp edx, 0x5c
jne 0x47b6c5
cmp byte [ebx + 1], 0x45
lea eax, [ebx + 1]
jne 0x47b6c5
xor esi, esi
mov ebx, eax
mov dword [esp + 0x38], esi
jmp 0x47b902
cmp edx, 0x5d
jne 0x47b232
test dword [edi + 0x4c], 0x2000000
je 0x47b232
mov edi, dword [esp + 0x30]
test ecx, ecx
mov eax, 0x97
mov ecx, 0xd
cmovne eax, ecx
mov byte [esi], al
inc esi
mov ebx, dword [esp + 0x10]
cmp edi, 0xfffffffe
mov eax, 0xffffffff
mov dword [esp + 0x14], esi
cmove edi, eax
inc ebx
mov ebp, edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x40], ebp
jmp 0x47ad90
cmp edx, 0x5b
jne 0x47b43b
mov al, byte [ebx + 1]
mov byte [esp + 0x57], al
cmp al, 0x3a
je 0x47b2ee
cmp al, 0x2e
je 0x47b2ee
cmp al, 0x3d
jne 0x47b6c5
lea edx, [esp + 0x6c]
mov ecx, ebx
call fcn.0047a3b0
test eax, eax
je 0x47b6c1
mov eax, dword [esp + 0x100]
xor ebp, ebp
cmp byte [esp + 0x57], 0x3a
mov edi, dword [eax + 8]
jne 0x47db79
add ebx, 2
mov dword [esp + 0x10], ebx
cmp byte [ebx], 0x5e
jne 0x47b332
mov ebp, 1
inc ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x6c]
mov ecx, ebx
sub edx, ebx
call fcn.0047a420
test eax, eax
js 0x47db52
test byte [esp + 0x2c], 1
je 0x47b356
xor ecx, ecx
cmp eax, 2
cmovle eax, ecx
lea ecx, [eax + eax*2]
mov eax, dword [ecx*4 + 0x49ffc0]
mov esi, dword [ecx*4 + 0x49ffc8]
movdqu xmm0, xmmword [eax + edi]
movdqu xmmword [esp + 0xc0], xmm0
movdqu xmm0, xmmword [eax + edi + 0x10]
mov eax, dword [ecx*4 + 0x49ffc4]
movdqu xmmword [esp + 0xd0], xmm0
test eax, eax
js 0x47b3c4
xor ecx, ecx
lea edx, [eax + edi]
test esi, esi
js 0x47b3b2
jmp 0x47b3a0
mov al, byte [edx + ecx]
or byte [esp + ecx + 0xc0], al
inc ecx
cmp ecx, 0x20
jl 0x47b3a0
jmp 0x47b3c4
mov al, byte [edx + ecx]
not al
and byte [esp + ecx + 0xc0], al
inc ecx
cmp ecx, 0x20
jl 0x47b3b2
test esi, esi
jns 0x47b3ca
neg esi
cmp esi, 1
jne 0x47b3d9
and byte [esp + 0xc1], 0xc3
jmp 0x47b3e6
cmp esi, 2
jne 0x47b3e6
and byte [esp + 0xcb], 0x7f
xor ecx, ecx
test ebp, ebp
je 0x47b410
lea esp, [esp]
mov al, byte [esp + ecx + 0xc0]
not al
or byte [esp + ecx + 0x70], al
inc ecx
cmp ecx, 0x20
jl 0x47b3f0
jmp 0x47b421
mov al, byte [esp + ecx + 0xc0]
or byte [esp + ecx + 0x70], al
inc ecx
cmp ecx, 0x20
jl 0x47b410
mov eax, dword [esp + 0x6c]
mov edi, 2
mov ebp, 1
mov dword [esp + 0x58], edi
lea ebx, [eax + 1]
jmp 0x47b8fe
cmp edx, 0x5c
jne 0x47b6c5
mov eax, dword [esp + 0x100]
lea ecx, [esp + 0x10]
mov ebx, dword [esp + 0xec]
mov edx, ebx
push 1
push dword [esp + 0x30]
push dword [eax + 0x38]
call fcn.00478fe0
add esp, 0xc
mov edx, eax
cmp dword [ebx], 0
mov dword [esp + 0x18], edx
jne 0x47db5f
mov ecx, edx
neg ecx
cmp ecx, 5
jne 0x47b493
mov ebx, dword [esp + 0x10]
mov edx, 8
mov dword [esp + 0x18], edx
jmp 0x47b6c5
cmp ecx, 0xc
je 0x47dbbc
cmp ecx, 0x1a
jne 0x47b4c9
mov ebx, dword [esp + 0x10]
cmp byte [ebx + 1], 0x5c
jne 0x47b4bb
cmp byte [ebx + 2], 0x45
lea eax, [ebx + 2]
jne 0x47b4bb
mov ebx, eax
jmp 0x47b902
mov esi, 1
mov dword [esp + 0x38], esi
jmp 0x47b902
cmp ecx, 0x19
je 0x47b6b8
mov ecx, dword [esp + 0x100]
test edx, edx
jns 0x47b6b2
mov edx, dword [ecx + 8]
mov eax, 0xfffffffa
sub eax, dword [esp + 0x18]
add edi, 2
inc ebp
mov dword [esp + 0x58], edi
cmp eax, 0xf
ja case.0x47b4fe.6
jmp dword [eax*4 + 0x47e178]
xor ecx, ecx
mov al, byte [edx + ecx + 0x40]
or byte [esp + ecx + 0x70], al
inc ecx
cmp ecx, 0x20
jl 0x47b507
mov ebx, dword [esp + 0x10]
jmp 0x47b8fe
mov dword [esp + 0x28], 1
xor ecx, ecx
jmp 0x47b530
mov al, byte [edx + ecx + 0x40]
not al
or byte [esp + ecx + 0x70], al
inc ecx
cmp ecx, 0x20
jl 0x47b530
mov ebx, dword [esp + 0x10]
jmp 0x47b8fe
xor ecx, ecx
jmp 0x47b550
mov al, byte [edx + ecx + 0xa0]
or byte [esp + ecx + 0x70], al
inc ecx
cmp ecx, 0x20
jl 0x47b550
mov ebx, dword [esp + 0x10]
jmp 0x47b8fe
mov dword [esp + 0x28], 1
xor ecx, ecx
jmp 0x47b580
mov al, byte [edx + ecx + 0xa0]
not al
or byte [esp + ecx + 0x70], al
inc ecx
cmp ecx, 0x20
jl 0x47b580
mov ebx, dword [esp + 0x10]
jmp 0x47b8fe
movzx eax, byte [edx]
mov ecx, 2
or byte [esp + 0x70], al
movzx eax, byte [edx + 1]
and al, 0xf7
or byte [esp + 0x71], al
mov al, byte [edx + ecx]
or byte [esp + ecx + 0x70], al
inc ecx
cmp ecx, 0x20
jl 0x47b5b2
mov ebx, dword [esp + 0x10]
jmp 0x47b8fe
lea eax, [esp + 0x70]
mov dword [esp + 0x28], 1
xor esi, esi
sub edx, eax
lea ecx, [esp + 0x70]
add ecx, esi
inc esi
mov al, byte [ecx + edx]
not al
or byte [ecx], al
cmp esi, 0x20
jl 0x47b5d8
or byte [esp + 0x71], 8
mov ebx, dword [esp + 0x10]
jmp 0x47b8fe
or byte [esp + 0x71], 2
or byte [esp + 0x74], 1
or byte [esp + 0x84], 1
mov ebx, dword [esp + 0x10]
jmp 0x47b8fe
xor ecx, ecx
mov eax, ecx
mov edx, 0xff
dec eax
je 0x47b631
sub eax, 3
je 0x47b62a
sub eax, 0x10
jne 0x47b636
mov edx, 0xfe
jmp 0x47b636
mov edx, 0xfd
or byte [esp + ecx + 0x70], dl
inc ecx
cmp ecx, 0x20
jl 0x47b616
mov ebx, dword [esp + 0x10]
jmp 0x47b8fe
or byte [esp + 0x71], 0x3c
or byte [esp + 0x80], 0x20
mov ebx, dword [esp + 0x10]
jmp 0x47b8fe
xor eax, eax
mov ecx, eax
mov edx, 0xff
dec ecx
je 0x47b677
sub ecx, 0xf
jne 0x47b67c
mov edx, 0xdf
jmp 0x47b67c
mov edx, 0xc3
or byte [esp + eax + 0x70], dl
inc eax
cmp eax, 0x20
jl 0x47b661
mov ebx, dword [esp + 0x10]
jmp 0x47b8fe
test byte [esp + 0x2c], 0x40
jne 0x47db9c
mov ebx, dword [esp + 0x10]
sub edi, 2
mov esi, dword [esp + 0x38]
mov dword [esp + 0x58], edi
movzx edx, byte [ebx]
mov dword [esp + 0x18], edx
jmp 0x47b6cc
mov ebx, dword [esp + 0x10]
jmp 0x47b6cc
mov ebx, dword [esp + 0x10]
jmp 0x47b902
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x100]
cmp byte [ebx + 1], 0x5c
jne 0x47b6ed
cmp byte [ebx + 2], 0x45
lea eax, [ebx + 2]
jne 0x47b6e9
mov ebx, eax
xor esi, esi
mov dword [esp + 0x10], ebx
cmp byte [ebx + 1], 0x5c
je 0x47b6d2
mov dword [esp + 0x38], esi
mov edi, ebx
cmp edx, 0xd
je 0x47b6f9
cmp edx, 0xa
jne 0x47b700
or dword [ecx + 0x50], 0x800
test esi, esi
jne 0x47b895
cmp byte [ebx + 1], 0x2d
jne 0x47b895
add ebx, 2
mov dword [esp + 0x10], ebx
mov dword [esp + 0x48], ebx
cmp byte [ebx], 0x5c
jne 0x47b777
cmp byte [ebx + 1], 0x45
jne 0x47b73a
add ebx, 2
mov dword [esp + 0x10], ebx
mov dword [esp + 0x48], ebx
cmp byte [ebx], 0x5c
je 0x47b722
jmp 0x47b777
cmp byte [ebx], 0x5c
jne 0x47b777
nop
cmp byte [ebx + 1], 0x51
jne 0x47b777
add ebx, 2
mov dword [esp + 0x10], ebx
mov dword [esp + 0x48], ebx
cmp byte [ebx], 0x5c
jne 0x47b76e
cmp byte [ebx + 1], 0x45
jne 0x47b76e
add ebx, 2
mov dword [esp + 0x10], ebx
mov dword [esp + 0x48], ebx
cmp byte [ebx], 0x5c
je 0x47b740
jmp 0x47b777
mov esi, 1
mov dword [esp + 0x38], esi
mov al, byte [ebx]
test al, al
je 0x47b88f
test esi, esi
jne 0x47b78d
cmp al, 0x5d
je 0x47b88f
cmp dword [esp + 0x38], 0
mov ebp, dword [esp + 0xec]
movzx esi, al
jne 0x47b7e4
cmp esi, 0x5c
jne 0x47b7e4
push 1
push dword [esp + 0x30]
mov edx, ebp
push dword [ecx + 0x38]
lea ecx, [esp + 0x1c]
call fcn.00478fe0
add esp, 0xc
mov esi, eax
cmp dword [ebp], 0
jne 0x47db5f
mov edx, dword [esp + 0x18]
test esi, esi
jns 0x47b7dc
cmp esi, 0xfffffffb
jne 0x47b88f
mov esi, 8
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x48], ebx
cmp esi, edx
jl 0x47dbdc
je 0x47b895
cmp esi, 0xd
je 0x47b7fc
cmp esi, 0xa
jne 0x47b80a
mov eax, dword [esp + 0x100]
or dword [eax + 0x50], 0x800
cmp dword [esp + 0x104], 0
mov edi, 2
mov ebp, 1
mov dword [esp + 0x58], edi
mov dword [esp + 0x50], ebp
jne 0x47b8fe
cmp edx, esi
jg 0x47b8fe
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x18]
and edi, ebp
mov ebp, dword [esp + 0x100]
mov eax, ebx
mov ecx, ebx
cdq
and ecx, 7
and edx, 7
add eax, edx
mov dl, 1
sar eax, 3
shl dl, cl
or byte [esp + eax + 0x70], dl
test edi, edi
je 0x47b87c
mov eax, dword [ebp + 4]
movzx ecx, byte [eax + ebx]
mov eax, ecx
and ecx, 7
cdq
and edx, 7
add eax, edx
mov dl, 1
sar eax, 3
shl dl, cl
or byte [esp + eax + 0x70], dl
inc ebx
cmp ebx, esi
jle 0x47b843
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x50]
mov edi, dword [esp + 0x58]
jmp 0x47b8fe
mov ebx, edi
mov dword [esp + 0x10], ebx
mov edi, dword [esp + 0x58]
cmp edi, 2
jge 0x47b8a3
inc edi
mov dword [esp + 0x58], edi
cmp edi, 1
jne 0x47b8b2
cmp byte [ebx + 1], 0x5d
je 0x47b9a8
mov esi, dword [esp + 0x18]
mov eax, edx
cdq
mov ecx, esi
and edx, 7
and ecx, 7
add eax, edx
mov ebp, 1
sar eax, 3
mov dl, 1
shl dl, cl
or byte [esp + eax + 0x70], dl
test byte [esp + 0x2c], 1
je 0x47b8fe
mov eax, dword [esp + 0x100]
mov eax, dword [eax + 4]
movzx ecx, byte [eax + esi]
mov eax, ecx
and ecx, 7
cdq
and edx, 7
add eax, edx
mov dl, 1
sar eax, 3
shl dl, cl
or byte [esp + eax + 0x70], dl
mov esi, dword [esp + 0x38]
inc ebx
mov dword [esp + 0x10], ebx
movzx edx, byte [ebx]
mov dword [esp + 0x18], edx
test edx, edx
je 0x47dbf9
cmp edx, 0x5d
jne 0x47b260
test esi, esi
jne 0x47b264
mov edi, dword [esp + 0x30]
mov eax, 0xffffffff
mov ecx, dword [esp + 0x1c]
cmp edi, 0xfffffffe
mov edx, dword [esp + 0x14]
cmove edi, eax
cmp ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x5c]
mov ebp, edi
mov dword [esp + 0x58], eax
setne al
add al, 0x6a
mov dword [esp + 0x30], edi
mov dword [esp + 0x40], ebp
mov byte [edx], al
cmp dword [esp + 0x104], esi
jne 0x47b993
test ecx, ecx
je 0x47b97a
xor ecx, ecx
lea ebx, [ebx]
not byte [esp + ecx + 0x70]
inc ecx
cmp ecx, 0x20
jl 0x47b970
movdqu xmm0, xmmword [esp + 0x70]
movdqu xmmword [edx + 1], xmm0
movdqu xmm0, xmmword [esp + 0x80]
movdqu xmmword [edx + 0x11], xmm0
add edx, 0x21
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
inc ebx
jmp 0x47ad90
mov ecx, dword [esp + 0x1c]
inc ebx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x58], ebx
test ecx, ecx
je 0x47af18
mov edi, dword [esp + 0x30]
mov eax, 0xffffffff
mov esi, dword [esp + 0x14]
cmp edi, 0xfffffffe
cmove edi, eax
test byte [esp + 0x2c], 1
mov ebp, edi
mov dword [esp + 0x30], edi
setne al
mov dword [esp + 0x40], ebp
add al, 0x1f
mov byte [esi], al
mov byte [esi + 1], dl
add esi, 2
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], esi
inc ebx
jmp 0x47ad90
test esi, esi
je case.0x47b0cb.1
push dword [esp + 0xec]
lea eax, [esp + 0x64]
push eax
lea ecx, [ebx + 1]
lea edx, [esp + 0x4c]
call fcn.00479570
mov edx, dword [esp + 0xf4]
add esp, 8
mov ebx, eax
mov dword [esp + 0x10], ebx
cmp dword [edx], 0
jne 0x47e0ad
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x44]
jmp 0x47ba68
xor ecx, ecx
or eax, 0xffffffff
jmp 0x47ba59
mov ecx, 1
or eax, 0xffffffff
jmp 0x47ba59
xor ecx, ecx
mov eax, 1
mov edx, dword [esp + 0xec]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x60], eax
mov esi, dword [esp + 0x24]
mov dword [esp + 0x18], eax
test esi, esi
je 0x47dc4c
test ecx, ecx
jne 0x47ba88
mov edx, dword [esp + 0x58]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x5c], edx
xor ebp, ebp
mov edx, 0x20000000
cmp ecx, eax
mov dword [esp + 0x48], ebp
lea eax, [ebx + 1]
cmove edx, ebp
mov dword [esp + 0x98], edx
mov edx, esi
mov dword [esp + 0x3c], edx
mov cl, byte [eax]
cmp cl, 0x2b
jne 0x47bac4
mov dword [esp + 0x20], ebp
mov ebx, eax
mov ebp, 1
mov dword [esp + 0x10], ebx
mov dword [esp + 0x48], ebp
jmp 0x47bae7
cmp cl, 0x3f
jne 0x47badc
mov ecx, dword [esp + 0xb4]
mov ebx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ebx
jmp 0x47bae7
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x20], eax
cmp byte [esi], 0x6f
jne 0x47bb71
push 3
lea eax, [esi + 3]
push esi
push eax
call fcn.00486480
mov word [esi], 0x7b
add esp, 0xc
mov byte [esi + 2], 6
mov word [esi + 6], 0x72
mov byte [esi + 8], 6
mov esi, dword [esp + 0x14]
add esi, 6
mov dword [esp + 0x68], 9
cmp dword [esp + 0x104], 0
mov dword [esp + 0x14], esi
jne 0x47bb67
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x24]
add eax, 2
cmp edx, eax
jb 0x47bb67
movzx ecx, byte [edx - 2]
movzx eax, byte [edx - 1]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x24]
sub eax, dword [edi + 0x14]
inc eax
cmp ecx, eax
jne 0x47bb67
lea eax, [ecx + 3]
sar eax, 8
add cl, 3
mov byte [edx - 2], al
mov eax, dword [edi + 0x24]
mov byte [eax - 1], cl
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
jmp 0x47bb75
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov al, byte [ecx]
cmp al, 0x1d
je 0x47c363
cmp al, 0x1e
je 0x47c363
cmp al, 0x1f
je 0x47c2f8
cmp al, 0x20
je 0x47c2f8
cmp al, 0x17
jae 0x47bbcc
mov edi, dword [esp + 0x18]
mov edx, 0x34
movzx ecx, al
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], ecx
test ebp, ebp
jne 0x47c3ba
test edi, edi
jns 0x47c3ba
mov ecx, dword [esp + 0x24]
jmp 0x47c32a
cmp al, 0x6a
je 0x47c26e
cmp al, 0x6b
je 0x47c26e
cmp al, 0x6d
je 0x47c26e
cmp al, 0x6e
je 0x47c26e
cmp al, 0x77
jb 0x47c243
cmp al, 0x81
ja 0x47c243
mov ecx, esi
xor ebp, ebp
sub ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x50], ebp
cmp al, 0x81
jne 0x47bc1e
mov ecx, dword [esp + 0x24]
cmp byte [ecx + 3], 0x8b
je 0x47bc9b
mov ecx, dword [esp + 0x44]
cmp al, 0x7b
jae 0x47bc46
test ecx, ecx
jg 0x47bc9b
mov eax, dword [esp + 0x18]
test eax, eax
js 0x47bc37
cmp eax, 1
jle 0x47bc4a
mov eax, 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x60], eax
jmp 0x47bc4a
mov eax, dword [esp + 0x18]
test ecx, ecx
jne 0x47bd3b
mov byte [esi], cl
push dword [esp + 0x4c]
push edi
push ecx
cmp eax, 1
jg 0x47bcdd
mov ebx, dword [esp + 0x30]
lea edx, [ecx + 1]
mov ecx, ebx
call fcn.0047a470
add esp, 0xc
lea esi, [ebx + 1]
push dword [esp + 0x1c]
push ebx
push esi
call fcn.00486480
inc dword [esp + 0x20]
add esp, 0xc
mov edi, dword [esp + 0x18]
test edi, edi
jne 0x47bcbb
mov byte [ebx], 0x9b
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x100]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x98]
or dword [edi + 0x54], eax
inc ebx
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x24], 0
jmp 0x47ad90
mov al, byte [esp + 0x20]
sub al, 0x74
mov dword [esp + 0x50], ebx
mov byte [ebx], al
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
dec eax
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x24], esi
jmp 0x47bec1
mov edi, dword [esp + 0x30]
mov edx, 4
mov ecx, edi
call fcn.0047a470
add esp, 0xc
lea eax, [edi + 4]
push dword [esp + 0x1c]
push edi
push eax
call fcn.00486480
mov al, byte [esp + 0x2c]
add esi, 4
sub al, 0x74
mov dword [esp + 0x20], esi
mov byte [edi], al
add esp, 0xc
mov eax, dword [esp + 0x18]
mov byte [edi + 1], 0x7d
add edi, 2
mov ebp, edi
mov dword [esp + 0x34], edi
mov word [edi], 0
add edi, 2
mov ebx, dword [esp + 0x10]
dec eax
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x24], edi
jmp 0x47bec1
cmp ecx, 1
jle 0x47beb7
mov edi, dword [esp + 0x104]
test edi, edi
je 0x47bd9a
mov eax, dword [esp + 0x68]
dec ecx
mov esi, ecx
imul esi, eax
movd xmm1, ecx
movd xmm0, eax
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
comisd xmm1, xmmword [0x4a66a8]
ja 0x47db2f
mov ecx, dword [edi]
mov eax, 0x7fffffeb
sub eax, ecx
cmp eax, esi
jl 0x47db2f
lea eax, [ecx + esi]
mov ecx, dword [esp + 0x44]
mov dword [edi], eax
jmp 0x47beb7
cmp dword [esp + 0xa0], ebp
je 0x47bdb2
mov eax, dword [esp + 0x5c]
test eax, eax
cmovs eax, dword [esp + 0x30]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x28], 1
cmp ecx, 1
jle 0x47beb7
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x100]
mov eax, dword [esp + 0x14]
mov esi, dword [edx + 0x24]
push ebx
push dword [esp + 0x28]
push eax
call fcn.0048e4b0
mov edx, dword [esp + 0x10c]
add esp, 0xc
mov edi, dword [esp + 0x4c]
add edi, 0xffffff9c
mov ecx, dword [edx + 0x10]
mov eax, ecx
sub eax, esi
add eax, dword [edx + 0x34]
add eax, edi
mov edi, dword [esp + 0x28]
cmp dword [edx + 0x24], eax
jbe 0x47be4d
sub dword [esp + 0x4c], ecx
sub esi, ecx
mov ecx, edx
call fcn.00478f00
mov ecx, dword [esp + 0xec]
mov dword [ecx], eax
test eax, eax
jne 0x47db5f
mov edx, dword [esp + 0x100]
mov ecx, dword [edx + 0x10]
add esi, ecx
add dword [esp + 0x4c], ecx
mov eax, ecx
mov ebx, dword [esp + 0x4c]
sub eax, esi
add eax, dword [edx + 0x34]
add ebx, 0xffffff9c
add eax, ebx
mov ebx, dword [esp + 0x1c]
cmp dword [edx + 0x24], eax
ja 0x47be06
cmp dword [esp + 0x4c], esi
jae 0x47be90
mov edi, dword [esp + 0x4c]
jmp 0x47be60
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [edx + 0x24]
add ecx, ebx
sar ecx, 8
mov byte [eax], cl
mov cl, byte [edi + 1]
add edi, 2
mov eax, dword [edx + 0x24]
add cl, bl
mov byte [eax + 1], cl
add dword [edx + 0x24], 2
cmp edi, esi
jb 0x47be60
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
inc edi
mov ecx, dword [esp + 0x44]
add eax, ebx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], edi
cmp edi, ecx
jl 0x47bdd2
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x47becb
sub eax, ecx
mov dword [esp + 0x60], eax
test eax, eax
mov dword [esp + 0x18], eax
js 0x47c0f6
mov esi, dword [esp + 0x104]
test esi, esi
je 0x47bf37
test eax, eax
jle 0x47bf37
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x18]
add eax, 7
mov ecx, eax
imul ecx, edi
movd xmm1, eax
movd xmm0, edi
cvtdq2pd xmm1, xmm1
sub ecx, 6
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
comisd xmm1, xmmword [0x4a66a8]
ja 0x47db2f
mov esi, dword [esi]
mov eax, 0x7fffffeb
sub eax, esi
cmp eax, ecx
jl 0x47db2f
lea eax, [esi + ecx]
mov ecx, dword [esp + 0x104]
mov dword [ecx], eax
jmp 0x47c09d
lea edi, [eax - 1]
mov dword [esp + 0x28], edi
test edi, edi
js 0x47c09d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
sub cl, 0x74
mov ebx, dword [esp + 0x100]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
mov esi, dword [ebx + 0x24]
mov byte [edx], cl
inc edx
mov dword [esp + 0x14], edx
test edi, edi
je 0x47bf9b
mov byte [edx], 0x7d
test ebp, ebp
jne 0x47bf79
xor ecx, ecx
jmp 0x47bf7e
lea ecx, [edx + 1]
sub ecx, ebp
mov eax, ecx
mov byte [edx + 2], cl
sar eax, 8
lea ebp, [edx + 1]
mov byte [edx + 1], al
add edx, 3
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x14], edx
push eax
push dword [esp + 0x28]
push edx
call fcn.0048e4b0
mov ecx, dword [ebx + 0x10]
add esp, 0xc
mov edx, dword [esp + 0x4c]
mov eax, ecx
sub eax, esi
add eax, 0xffffff9c
add eax, dword [ebx + 0x34]
add eax, edx
cmp dword [ebx + 0x24], eax
jbe 0x47c001
sub edx, ecx
sub esi, ecx
mov ecx, ebx
mov dword [esp + 0x4c], edx
call fcn.00478f00
mov ecx, dword [esp + 0xec]
mov dword [ecx], eax
test eax, eax
jne 0x47db5f
mov ecx, dword [ebx + 0x10]
add esi, ecx
mov edx, dword [esp + 0x4c]
mov eax, ecx
sub eax, esi
add edx, ecx
add eax, 0xffffff9c
mov dword [esp + 0x4c], edx
add eax, dword [ebx + 0x34]
add eax, edx
cmp dword [ebx + 0x24], eax
ja 0x47bfc1
cmp edx, esi
jae 0x47c074
mov ebp, dword [esp + 0x4c]
mov eax, 1
test edi, edi
mov ecx, 4
mov edi, dword [esp + 0x100]
mov edx, eax
mov ebx, eax
cmovne edx, ecx
cmovne ebx, ecx
jmp 0x47c030
movzx ecx, byte [ebp]
movzx eax, byte [ebp + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [edi + 0x24]
add ecx, dword [esp + 0x1c]
add ecx, edx
sar ecx, 8
mov byte [eax], cl
mov cl, byte [esp + 0x1c]
mov eax, dword [edi + 0x24]
add cl, bl
add cl, byte [ebp + 1]
add ebp, 2
mov byte [eax + 1], cl
add dword [edi + 0x24], 2
cmp ebp, esi
jb 0x47c030
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x34]
mov ebx, dword [esp + 0x100]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
add edx, eax
mov ecx, dword [esp + 0x20]
dec edi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], edi
jns 0x47bf60
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x14]
test ebp, ebp
je 0x47c42a
lea esp, [esp]
mov ecx, esi
mov edx, esi
sub ecx, ebp
inc ecx
sub edx, ecx
movzx esi, byte [edx + 1]
movzx eax, byte [edx + 2]
shl esi, 8
or esi, eax
jne 0x47c0cc
xor ebp, ebp
jmp 0x47c0ce
sub ebp, esi
mov esi, dword [esp + 0x14]
mov eax, ecx
sar eax, 8
mov byte [esi], 0x72
mov byte [esi + 1], al
mov byte [esi + 2], cl
add esi, 3
mov dword [esp + 0x14], esi
mov byte [edx + 1], al
mov byte [edx + 2], cl
test ebp, ebp
jne 0x47c0b0
jmp 0x47c422
mov edx, dword [esp + 0x14]
movzx ecx, byte [edx - 2]
lea edi, [edx - 3]
movzx eax, byte [edi + 2]
mov ebp, edi
shl ecx, 8
or ecx, eax
sub ebp, ecx
mov al, byte [ebp]
cmp al, 0x7b
je 0x47c119
cmp al, 0x7c
jne 0x47c127
mov ebx, dword [esp + 0x48]
test ebx, ebx
je 0x47c12b
mov byte [ebp], 0x7d
jmp 0x47c13b
mov ebx, dword [esp + 0x48]
cmp al, 0x7b
je 0x47c232
cmp al, 0x7c
je 0x47c232
cmp dword [esp + 0x104], 0
jne 0x47c187
mov esi, ebp
jmp 0x47c150
push dword [esp + 0x100]
mov edx, edi
mov ecx, esi
push 0
call fcn.00479fb0
add esp, 8
test eax, eax
jne 0x47c17f
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
add esi, ecx
cmp byte [esi], 0x71
je 0x47c150
jmp 0x47c183
add byte [ebp], 5
mov edx, dword [esp + 0x14]
test ebx, ebx
je 0x47c225
mov al, byte [ebp]
cmp al, 0x81
je 0x47c1a4
cmp al, 0x86
je 0x47c1a4
inc al
mov byte [ebp], al
mov byte [edi], 0x75
jmp 0x47c1fb
push dword [esp + 0x4c]
mov ebx, edx
mov byte [edx], 0
push dword [esp + 0x104]
mov edx, 3
sub ebx, ebp
push ecx
mov ecx, ebp
call fcn.0047a470
add esp, 0xc
lea eax, [ebp + 3]
push ebx
push ebp
push eax
call fcn.00486480
mov ecx, dword [esp + 0x20]
add ebx, 3
mov byte [ebp], 0x7e
mov eax, ebx
sar eax, 8
add esp, 0xc
mov byte [ecx + 3], 0x75
mov byte [ecx + 4], al
mov byte [ecx + 5], bl
add ecx, 6
mov dword [esp + 0x14], ecx
mov byte [ebp + 1], al
mov byte [ebp + 2], bl
mov eax, dword [esp + 0x50]
test eax, eax
je 0x47c206
mov byte [eax], 0x8e
cmp dword [esp + 0x44], 2
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
jge 0x47c426
mov edi, dword [esp + 0x100]
jmp 0x47bc9f
mov eax, dword [esp + 0x20]
add al, 0x73
mov byte [edi], al
jmp 0x47bc90
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
add al, 0x73
mov byte [edi], al
jmp 0x47c422
cmp al, 0x97
je 0x47bc9b
mov eax, dword [esp + 0xec]
mov dword [eax], 0xb
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x47c283
mov esi, dword [esp + 0x24]
mov dword [esp + 0x14], esi
jmp 0x47bc9f
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x47c2af
cmp ecx, 0xffffffff
jne 0x47c29d
mov eax, dword [esp + 0x20]
add al, 0x62
mov byte [esi], al
jmp 0x47c41d
cmp ecx, 1
jne 0x47c2c6
mov eax, dword [esp + 0x20]
add al, 0x66
mov byte [esi], al
jmp 0x47c41d
cmp edx, 1
jne 0x47c2c6
cmp ecx, 0xffffffff
jne 0x47c2c6
mov eax, dword [esp + 0x20]
add al, 0x64
mov byte [esi], al
jmp 0x47c41d
mov eax, dword [esp + 0x20]
add al, 0x68
mov byte [esi], al
mov eax, edx
sar eax, 8
mov byte [esi + 1], al
xor eax, eax
cmp ecx, 0xffffffff
mov byte [esi + 2], dl
cmove ecx, eax
mov eax, ecx
mov byte [esi + 4], cl
sar eax, 8
mov byte [esi + 3], al
add esi, 5
mov dword [esp + 0x60], ecx
jmp 0x47c41e
mov edi, dword [esp + 0x18]
cmp al, 0x1f
mov eax, 0x3b
mov edx, 0x48
cmove edx, eax
movzx eax, byte [ecx + 1]
sub edx, 0x21
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], edx
test ebp, ebp
jne 0x47c3ba
test edi, edi
jns 0x47c3ba
push dword [esp + 0x100]
lea eax, [ebx + 1]
push dword [esp + 0x30]
push eax
call fcn.0047a5e0
mov esi, dword [esp + 0x50]
add esp, 0xc
test eax, eax
je 0x47c359
mov dword [esp + 0x20], 0
mov dword [esp + 0x48], 1
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
jmp 0x47c3be
xor ecx, ecx
mov edx, 0xd
cmp al, 0x1d
cmove edx, ecx
movzx ecx, byte [esi - 1]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], ecx
cmp esi, 1
jle 0x47c394
mov eax, dword [edi + 0x54]
or eax, ecx
or eax, dword [esp + 0x9c]
mov dword [esp + 0x5c], eax
mov edi, dword [esp + 0x18]
test ebp, ebp
jne 0x47c3be
test edi, edi
jns 0x47c3be
push dword [esp + 0x100]
mov ecx, dword [esp + 0x28]
lea eax, [ebx + 1]
push dword [esp + 0x30]
push eax
call fcn.0047a5e0
jmp 0x47c342
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x24]
mov al, byte [ebp]
cmp al, 0x10
je 0x47c3da
cmp al, 0xf
je 0x47c3da
mov dword [esp + 0x34], 0xffffffff
or ecx, 0xffffffff
jmp 0x47c3e6
movzx eax, byte [ebp + 2]
movzx ecx, byte [ebp + 1]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], ebp
test edi, edi
je 0x47bc94
add dword [esp + 0x20], edx
test esi, esi
jne 0x47c483
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
cmp ecx, 0xffffffff
jne 0x47c45c
add al, 0x21
mov byte [ebp], al
lea esi, [ebp + 1]
mov edx, dword [esp + 0x1c]
mov byte [esi], dl
inc esi
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
cmp dword [esp + 0x48], 0
je 0x47bc94
mov al, byte [edx]
cmp al, 0x5d
jne 0x47c57a
mov al, byte [edx + 3]
cmp al, 0x10
je 0x47c570
cmp al, 0xf
je 0x47c570
xor eax, eax
add edx, 4
jmp 0x47c58c
mov edx, dword [esp + 0x1c]
lea esi, [ebp + 1]
cmp ecx, 1
jne 0x47c46f
add al, 0x25
mov byte [ebp], al
jmp 0x47c41b
add al, 0x27
mov byte [ebp], al
mov eax, ecx
sar eax, 8
mov byte [esi], al
mov byte [esi + 1], cl
add esi, 2
jmp 0x47c41b
cmp esi, 1
jne 0x47c4cc
mov ecx, dword [esp + 0x18]
cmp ecx, 0xffffffff
jne 0x47c49c
mov eax, dword [esp + 0x20]
add al, 0x23
jmp 0x47c411
mov esi, eax
mov dword [esp + 0x14], esi
cmp ecx, 1
je 0x47c219
mov edx, dword [esp + 0x20]
lea esi, [eax + 1]
add dl, 0x27
mov byte [eax], dl
lea eax, [ecx - 1]
sar eax, 8
dec cl
mov byte [esi], al
mov byte [esi + 1], cl
add esi, 2
jmp 0x47c417
mov ebx, dword [esp + 0x18]
lea esi, [ebp + 1]
add dl, 0x29
mov byte [ebp], dl
mov edx, dword [esp + 0x44]
mov eax, edx
sar eax, 8
mov byte [esi], al
mov byte [esi + 1], dl
add esi, 2
test ebx, ebx
jns 0x47c513
mov edx, dword [esp + 0x1c]
mov byte [esi], dl
inc esi
test ecx, ecx
js 0x47c505
mov eax, dword [esp + 0x34]
mov byte [esi], cl
mov byte [esi + 1], al
add esi, 2
mov eax, dword [esp + 0x20]
add al, 0x21
mov byte [esi], al
inc esi
jmp 0x47c41b
cmp ebx, edx
je 0x47c417
mov edx, dword [esp + 0x1c]
mov byte [esi], dl
inc esi
mov dword [esp + 0x14], esi
test ecx, ecx
js 0x47c53a
mov eax, dword [esp + 0x34]
mov byte [esi], cl
mov byte [esi + 1], al
add esi, 2
mov dword [esp + 0x14], esi
sub ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x60], ebx
cmp ebx, 1
jne 0x47c559
add al, 0x25
mov byte [esi], al
inc esi
jmp 0x47c41b
add al, 0x27
mov byte [esi], al
mov eax, ebx
sar eax, 8
mov byte [esi + 1], al
mov byte [esi + 2], bl
add esi, 3
jmp 0x47c41b
mov eax, 2
add edx, 4
jmp 0x47c58c
cmp al, 0x29
je 0x47c582
cmp al, 0x43
jne 0x47c592
movzx eax, al
movzx eax, byte [eax + 0x4a04b0]
add edx, eax
mov dword [esp + 0x3c], edx
mov eax, esi
sub eax, edx
mov dword [esp + 0x50], eax
test eax, eax
jle 0x47bc94
movzx eax, byte [edx]
add eax, 0xffffffdf
cmp eax, 0x3a
ja case.0x47c5b8.34
movzx eax, byte [eax + 0x47e20c]
jmp dword [eax*4 + 0x47e1b8]
mov byte [edx], 0x2a
jmp 0x47bc90
mov byte [edx], 0x2b
jmp 0x47bc90
mov byte [edx], 0x2c
jmp 0x47bc90
mov byte [edx], 0x2d
jmp 0x47bc90
mov byte [edx], 0x37
jmp 0x47bc90
mov byte [edx], 0x38
jmp 0x47bc90
mov byte [edx], 0x39
jmp 0x47bc90
mov byte [edx], 0x3a
jmp 0x47bc90
mov byte [edx], 0x44
jmp 0x47bc90
mov byte [edx], 0x45
jmp 0x47bc90
mov byte [edx], 0x46
jmp 0x47bc90
mov byte [edx], 0x47
jmp 0x47bc90
mov byte [edx], 0x51
jmp 0x47bc90
mov byte [edx], 0x52
jmp 0x47bc90
mov byte [edx], 0x53
jmp 0x47bc90
mov byte [edx], 0x54
jmp 0x47bc90
mov byte [edx], 0x5e
jmp 0x47bc90
mov byte [edx], 0x5f
jmp 0x47bc90
mov byte [edx], 0x60
jmp 0x47bc90
mov byte [edx], 0x61
jmp 0x47bc90
push dword [esp + 0x4c]
mov edi, dword [esp + 0x104]
mov edx, 3
push edi
mov byte [esi], 0
push ecx
mov ecx, dword [esp + 0x48]
call fcn.0047a470
mov ebx, dword [esp + 0x5c]
add esp, 0xc
mov eax, dword [esp + 0x3c]
push ebx
push eax
add eax, 3
push eax
call fcn.00486480
mov eax, dword [esp + 0x48]
add ebx, 3
mov ecx, ebx
add esp, 0xc
sar ecx, 8
mov byte [eax], 0x7b
mov byte [esi + 3], 0x72
mov byte [esi + 4], cl
mov byte [esi + 5], bl
add esi, 6
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], esi
mov byte [eax + 1], cl
mov eax, dword [esp + 0x3c]
mov byte [eax + 2], bl
mov ebx, dword [esp + 0x10]
jmp 0x47bc9b
mov ecx, dword [esp + 0x2c]
inc ebx
xor eax, eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x24]
mov dl, byte [ebx]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], 0x7f
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], 0
cmp dl, 0x2a
jne 0x47c8fd
lea eax, [ebx + 1]
mov dword [esp + 0x50], eax
mov al, byte [eax]
cmp al, 0x3a
je 0x47c71f
movzx ecx, al
mov eax, dword [edi + 0xc]
test byte [ecx + eax], 2
je 0x47c8f9
mov edx, dword [esp + 0x50]
xor esi, esi
mov ecx, dword [edi + 0xc]
mov ebx, edx
mov dword [esp + 0x10], ebx
mov ebp, 0x49f27c
mov dword [esp + 0x34], 0
mov dword [esp + 0x48], esi
movzx eax, byte [ebx]
mov dword [esp + 0x24], esi
test byte [eax + ecx], 2
je 0x47c75e
lea esp, [esp]
inc ebx
mov dword [esp + 0x10], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 2
jne 0x47c750
mov eax, ebx
sub eax, edx
cmp byte [ebx], 0x3a
mov dword [esp + 0x28], eax
jne 0x47c79b
inc ebx
mov dword [esp + 0x10], ebx
mov esi, ebx
mov dword [esp + 0x48], ebx
mov al, byte [ebx]
test al, al
je 0x47c78f
lea esp, [esp]
cmp al, 0x29
je 0x47c78f
inc ebx
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
test al, al
jne 0x47c780
mov eax, ebx
sub eax, esi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x28]
cmp byte [ebx], 0x29
jne 0x47dcdd
xor edi, edi
mov esi, 0x49f210
jmp 0x47c7b0
cmp eax, dword [esi]
jne 0x47c7c7
push eax
push ebp
push edx
call fcn.00489070
add esp, 0xc
test eax, eax
je 0x47c7e0
mov edx, dword [esp + 0x50]
inc ebp
inc edi
add ebp, dword [esi]
add esi, 0xc
cmp esi, 0x49f27c
jge 0x47dcb6
mov eax, dword [esp + 0x28]
jmp 0x47c7b0
lea eax, [edi + edi*2]
mov ecx, dword [eax*4 + 0x49f214]
cmp ecx, 0x98
jne 0x47c863
cmp dword [esp + 0x34], 0
jne 0x47dc68
mov edi, dword [esp + 0x100]
mov edx, dword [esp + 0x14]
mov ecx, dword [edi + 0x20]
mov dword [edi + 0x58], 1
test ecx, ecx
je 0x47c830
mov byte [edx], 0x9a
movzx eax, byte [ecx + 5]
mov byte [edx + 1], al
movzx eax, byte [ecx + 4]
mov byte [edx + 2], al
add edx, 3
mov ecx, dword [ecx]
test ecx, ecx
jne 0x47c816
cmp dword [edi + 0x48], 0
setg al
add al, 0x98
mov byte [edx], al
inc edx
cmp dword [esp + 0x30], 0xfffffffe
mov esi, edx
mov dword [esp + 0x14], edx
jne 0x47c8eb
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x40]
inc ebx
mov dword [esp + 0x30], 0xffffffff
jmp 0x47ad90
mov ebx, dword [esp + 0x34]
test ebx, ebx
jne 0x47c8a0
test ecx, ecx
js 0x47dc8f
mov esi, dword [esp + 0x14]
mov al, cl
mov byte [esi], al
inc esi
mov dword [esp + 0x14], esi
cmp al, 0x94
jne 0x47c8eb
mov eax, dword [esp + 0x100]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x40]
or dword [eax + 0x50], 0x1000
inc ebx
jmp 0x47ad90
cmp dword [eax*4 + 0x49f218], 0
jl 0x47dc68
mov esi, dword [esp + 0x14]
mov al, byte [eax*4 + 0x49f218]
mov byte [esi], al
cmp al, 0x95
jne 0x47c8cd
mov eax, dword [esp + 0x100]
or dword [eax + 0x50], 0x1000
push ebx
push dword [esp + 0x4c]
mov byte [esi + 1], bl
add esi, 2
push esi
call fcn.0048e4b0
add esi, ebx
add esp, 0xc
mov byte [esi], 0
inc esi
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x40]
inc ebx
jmp 0x47ad90
mov ecx, dword [esp + 0x2c]
cmp dl, 0x3f
jne 0x47d133
inc ebx
mov dword [esp + 0x10], ebx
mov dl, byte [ebx]
movzx eax, dl
add eax, 0xffffffdf
cmp eax, 0x5b
ja case.0x47c923.34
movzx eax, byte [eax + 0x47e284]
jmp dword [eax*4 + 0x47e248]
inc ebx
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
test al, al
je 0x47c944
cmp al, 0x29
je 0x47c967
inc ebx
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
test al, al
jne 0x47c935
mov eax, dword [esp + 0xec]
mov dword [eax], 0x12
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
cmp byte [ebx], 0
je 0x47c944
mov esi, dword [esp + 0x14]
inc ebx
jmp 0x47ad90
mov dword [esp + 0x48], 1
mov eax, 0x7d
mov dword [esp + 0x1c], eax
inc ebx
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov byte [eax], bl
mov dword [esp + 0x24], eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x68], 0
mov edi, dword [eax + 0x54]
mov esi, dword [eax + 0x38]
cmp ebx, 0x79
je 0x47d4cc
cmp ebx, 0x7a
je 0x47d4cc
xor ecx, ecx
jmp 0x47d4d1
cmp byte [ebx + 1], 0x3f
mov dword [esp + 0x1c], 0x81
jne 0x47c9f5
mov al, byte [ebx + 2]
cmp al, 0x3d
je 0x47d4bb
cmp al, 0x21
je 0x47c98c
cmp al, 0x3c
je 0x47c98c
mov esi, dword [esp + 0x14]
mov eax, 3
mov dword [esp + 0x18], eax
mov dword [esp + 0x50], 0xffffffff
mov byte [esi + 3], 0x87
mov ebx, dword [esp + 0x10]
mov al, byte [ebx + 1]
cmp al, 0x52
jne 0x47ca38
cmp byte [ebx + 2], 0x26
lea ecx, [ebx + 2]
jne 0x47ca38
mov dword [esp + 0x10], ecx
mov byte [esi + 3], 0x89
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x28], 0xffffffff
jmp 0x47ca7a
cmp al, 0x3c
jne 0x47ca4b
inc ebx
mov dword [esp + 0x28], 0x3e
mov dword [esp + 0x10], ebx
jmp 0x47ca7a
cmp al, 0x27
jne 0x47ca5e
inc ebx
mov dword [esp + 0x28], 0x27
mov dword [esp + 0x10], ebx
jmp 0x47ca7a
mov dword [esp + 0x28], 0
cmp al, 0x2d
je 0x47ca6e
cmp al, 0x2b
jne 0x47ca7a
inc ebx
mov dword [esp + 0x10], ebx
movzx eax, byte [ebx]
mov dword [esp + 0x50], eax
movzx eax, byte [ebx + 1]
inc ebx
mov esi, dword [edi + 0xc]
test byte [eax + esi], 0x10
je 0x47dda0
mov dword [esp + 0x10], ebx
xor ecx, ecx
mov al, byte [ebx]
mov edi, ebx
movzx edx, al
mov dword [esp + 0x34], ecx
mov dword [esp + 0x24], edi
test byte [esi + edx], 0x10
je 0x47cad9
test ecx, ecx
js 0x47cac1
cmp al, 0x30
jb 0x47cabe
cmp al, 0x39
ja 0x47cabe
lea eax, [ecx + ecx*4]
lea ecx, [eax - 0x18]
lea ecx, [edx + ecx*2]
jmp 0x47cac1
or ecx, 0xffffffff
inc ebx
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
movzx edx, al
test byte [esi + edx], 0x10
jne 0x47caa7
mov dword [esp + 0x34], ecx
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x28]
mov ebp, ebx
sub ebp, edi
test edx, edx
jle 0x47caf5
movzx eax, byte [ebx]
inc ebx
mov dword [esp + 0x10], ebx
cmp eax, edx
jne 0x47dd7c
mov al, byte [ebx]
inc ebx
mov dword [esp + 0x10], ebx
cmp al, 0x29
jne 0x47dd7c
cmp dword [esp + 0x104], 0
jne 0x47c98c
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x47cb67
test ecx, ecx
jle 0x47dd00
cmp eax, 0x2d
mov eax, dword [esp + 0x100]
jne 0x47cb3f
mov eax, dword [eax + 0x38]
sub eax, ecx
lea ecx, [eax + 1]
mov eax, dword [esp + 0x100]
jmp 0x47cb42
add ecx, dword [eax + 0x38]
test ecx, ecx
jle 0x47d360
cmp ecx, dword [eax + 0x3c]
jg 0x47d360
mov edx, dword [esp + 0x14]
mov eax, ecx
sar eax, 8
mov byte [edx + 4], al
mov byte [edx + 5], cl
jmp 0x47c98c
mov ecx, dword [esp + 0x100]
xor edi, edi
mov ebx, dword [esp + 0x24]
mov esi, dword [ecx + 0x28]
cmp edi, dword [ecx + 0x2c]
jge 0x47cbca
lea esp, [esp]
push ebp
lea eax, [esi + 2]
push eax
push ebx
call fcn.00489070
mov ecx, dword [esp + 0x10c]
add esp, 0xc
test eax, eax
je 0x47cba2
add esi, dword [ecx + 0x30]
inc edi
cmp edi, dword [ecx + 0x2c]
jl 0x47cb80
cmp edi, dword [ecx + 0x2c]
jge 0x47cbca
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
mov edx, dword [esp + 0x14]
shl eax, 8
or ecx, eax
mov eax, ecx
sar eax, 8
inc byte [edx + 3]
mov byte [edx + 4], al
mov byte [edx + 5], cl
jmp 0x47c98c
mov eax, dword [esp + 0x2c]
mov edx, ebx
shr eax, 3
push ecx
and eax, 1
push eax
push ebp
call fcn.00479a00
add esp, 0xc
test eax, eax
jle 0x47cbfc
mov edx, dword [esp + 0x14]
mov ecx, eax
sar ecx, 8
inc byte [edx + 3]
mov byte [edx + 4], cl
mov byte [edx + 5], al
jmp 0x47c98c
cmp dword [esp + 0x28], 0
jne 0x47dd55
cmp byte [ebx], 0x52
jne 0x47cc5a
xor ecx, ecx
lea edx, [ecx + 1]
cmp ebp, edx
jle 0x47cc3d
mov al, byte [edx + ebx]
cmp al, 0x30
jb 0x47dd55
cmp al, 0x39
ja 0x47dd55
lea ecx, [ecx + ecx*4]
movzx eax, al
inc edx
lea ecx, [ecx - 0x18]
lea ecx, [eax + ecx*2]
cmp edx, ebp
jl 0x47cc15
test ecx, ecx
jne 0x47cc42
mov ecx, 0xffff
mov edx, dword [esp + 0x14]
mov eax, ecx
sar eax, 8
mov byte [edx + 3], 0x89
mov byte [edx + 4], al
mov byte [edx + 5], cl
jmp 0x47c98c
cmp ebp, 6
jne 0x47cc82
push ebp
push str.DEFINE
push ebx
call fcn.00489070
add esp, 0xc
test eax, eax
jne 0x47cc82
mov eax, dword [esp + 0x14]
lea edx, [ebp - 5]
mov byte [eax + 3], 0x8b
jmp 0x47c994
mov ecx, dword [esp + 0x34]
test ecx, ecx
jle 0x47dd23
mov eax, dword [esp + 0x100]
cmp ecx, dword [eax + 0x3c]
jg 0x47dd23
mov edx, dword [esp + 0x14]
mov eax, ecx
sar eax, 8
mov byte [edx + 4], al
mov byte [edx + 5], cl
jmp 0x47c98c
inc dword [edi + 0x48]
mov eax, 0x77
mov dword [esp + 0x1c], eax
jmp 0x47c987
inc ebx
mov dword [esp + 0x10], ebx
cmp byte [ebx], 0x29
jne 0x47cceb
mov esi, dword [esp + 0x14]
mov dword [esp + 0x24], 0
mov byte [esi], 0x97
inc esi
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], esi
inc ebx
jmp 0x47ad90
inc dword [edi + 0x48]
mov dword [esp + 0x1c], 0x78
jmp 0x47c98c
mov cl, byte [ebx + 1]
mov al, cl
cmp al, 0x21
je 0x47cdd1
cmp al, 0x3d
je 0x47cdbe
mov eax, dword [edi + 0xc]
movzx ecx, cl
test byte [ecx + eax], 0x10
je 0x47ddc3
mov ecx, dword [edi + 0xc]
cmp dl, 0x3c
mov eax, 0x3e
mov esi, 0x27
cmove esi, eax
inc ebx
mov dword [esp + 0x10], ebx
mov edx, ebx
mov dword [esp + 0x18], edx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
je 0x47cd55
inc ebx
mov dword [esp + 0x10], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
jne 0x47cd47
mov ecx, ebx
sub ecx, edx
cmp dword [esp + 0x104], 0
mov dword [esp + 0x34], ecx
je 0x47cf5e
movzx eax, byte [ebx]
cmp eax, esi
jne 0x47de54
cmp dword [edi + 0x2c], 0x2710
jge 0x47de31
lea eax, [ecx + 3]
cmp eax, dword [edi + 0x30]
jle 0x47d0e3
mov dword [edi + 0x30], eax
cmp ecx, 0x20
jle 0x47d0e3
mov eax, dword [esp + 0xec]
mov dword [eax], 0x30
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
inc dword [edi + 0x48]
add ebx, 2
mov dword [esp + 0x1c], 0x79
jmp 0x47c988
inc dword [edi + 0x48]
add ebx, 2
mov dword [esp + 0x1c], 0x7a
jmp 0x47c988
mov dword [esp + 0x1c], 0x7b
jmp 0x47c987
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x64], eax
xor edx, edx
mov dword [esp + 0xac], 1
mov dword [esp + 0x34], ecx
mov byte [eax], 0x70
inc eax
mov ebx, dword [esp + 0x10]
mov esi, ebx
inc ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x6c], esi
mov al, byte [ebx]
cmp al, 0x30
jb 0x47ce4f
lea esp, [esp]
cmp al, 0x39
ja 0x47ce4b
movzx eax, al
lea ecx, [ecx + ecx*4]
inc ebx
lea ecx, [ecx - 0x18]
mov dword [esp + 0x10], ebx
lea ecx, [eax + ecx*2]
mov al, byte [ebx]
cmp al, 0x30
jae 0x47ce30
mov dword [esp + 0x34], ecx
mov al, byte [ebx]
cmp al, 0x29
je 0x47ceb3
test al, al
je 0x47ddeb
cmp al, 0x3a
je 0x47ce67
mov dword [esp + 0x34], edx
mov ebx, esi
lea ecx, [ebx + 1]
mov dword [esp + 0x6c], ecx
mov edi, edi
inc ebx
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
test al, al
je 0x47ddeb
cmp al, 0x29
jne 0x47ce70
cmp al, dl
je 0x47ddeb
sub ebx, ecx
push 0
push ebx
push ecx
mov ecx, 0x4b09a0
call fcn.00420490
mov edx, eax
test edx, edx
je 0x47dde7
cmp byte [edx + 0x3d], 0
jne 0x47dde7
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
cmp eax, 0xff
jg 0x47de0e
mov esi, dword [esp + 0x14]
mov dword [esp + 0x24], 0
mov byte [esi], al
mov dword [esi + 1], edx
mov eax, dword [esp + 0x10]
sub eax, dword [edi + 0x18]
inc eax
sar eax, 8
mov byte [esi + 5], al
mov al, byte [esp + 0x10]
sub al, byte [edi + 0x18]
inc al
mov word [esi + 7], 0
mov byte [esi + 6], al
add esi, 9
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], esi
inc ebx
jmp 0x47ad90
inc ebx
mov dword [esp + 0x10], ebx
mov dl, byte [ebx]
cmp dl, 0x3d
je 0x47cf41
cmp dl, 0x3e
je 0x47cf41
cmp dl, 0x3c
je case.0x47c923.39
mov eax, dword [esp + 0xec]
mov dword [eax], 0x29
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov esi, dword [esp + 0xec]
xor eax, eax
cmp dl, 0x3e
mov edi, 0x29
sete al
mov dword [esp + 0x28], eax
jmp 0x47d78d
mov ebp, dword [edi + 0x28]
xor eax, eax
mov dword [esp + 0x28], eax
xor edi, edi
mov eax, dword [esp + 0x100]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x50], eax
test eax, eax
jle 0x47d064
nop
mov esi, dword [esp + 0x34]
lea edx, [ebp + 2]
mov ecx, dword [esp + 0x18]
sub esi, 4
jb 0x47cfa1
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x47cfa6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x47cf90
cmp esi, 0xfffffffc
je 0x47cfda
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x47cfd3
cmp esi, 0xfffffffd
je 0x47cfda
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x47cfd3
cmp esi, 0xfffffffe
je 0x47cfda
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x47cfd3
cmp esi, 0xffffffff
je 0x47cfda
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x47cfda
sbb eax, eax
or eax, 1
jmp 0x47cfdc
xor eax, eax
test eax, eax
jne 0x47d01f
mov eax, dword [esp + 0x34]
cmp byte [eax + ebp + 2], 0
jne 0x47d038
movzx eax, byte [ebp]
movzx ecx, byte [ebp + 1]
shl eax, 8
or ecx, eax
mov eax, dword [esp + 0x100]
mov eax, dword [eax + 0x38]
inc eax
cmp ecx, eax
je 0x47d015
test dword [esp + 0x2c], 0x80000
je 0x47de77
mov dword [esp + 0x28], 1
jmp 0x47d021
js 0x47d038
mov eax, dword [esp + 0x100]
inc edi
add ebp, dword [eax + 0x30]
cmp edi, dword [esp + 0x50]
jl 0x47cf80
jmp 0x47d05c
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x50]
sub ecx, edi
mov eax, dword [eax + 0x30]
imul ecx, eax
add eax, ebp
push ecx
push ebp
push eax
call fcn.00486480
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x47d0ac
mov eax, dword [esp + 0x100]
xor esi, esi
mov edi, dword [eax + 0x2c]
mov edx, dword [eax + 0x28]
test edi, edi
jle 0x47d0ac
cmp edx, ebp
je 0x47d0a3
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
shl eax, 8
or ecx, eax
mov eax, dword [esp + 0x100]
mov eax, dword [eax + 0x38]
inc eax
cmp ecx, eax
je 0x47de9a
mov eax, dword [esp + 0x100]
jmp 0x47d0a4
dec esi
add edx, dword [eax + 0x30]
inc esi
cmp esi, edi
jl 0x47d077
mov edi, dword [esp + 0x100]
mov ebx, dword [esp + 0x34]
push ebx
push dword [esp + 0x1c]
mov eax, dword [edi + 0x38]
inc eax
sar eax, 8
mov byte [ebp], al
mov al, byte [edi + 0x38]
inc al
mov byte [ebp + 1], al
lea eax, [ebp + 2]
push eax
call fcn.0048e4b0
mov byte [ebx + ebp + 2], 0
add esp, 0xc
mov ebx, dword [esp + 0x10]
inc dword [edi + 0x2c]
inc ebx
mov dword [esp + 0x10], ebx
inc dword [edi + 0x38]
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 0x38]
sar eax, 8
mov byte [edx + 3], al
mov al, byte [edi + 0x38]
mov byte [edx + 4], al
mov edx, 2
jmp 0x47c990
mov esi, dword [esp + 0xec]
mov edi, 0x29
mov dword [esp + 0x28], 1
jmp 0x47d78d
inc ebx
mov dword [esp + 0x10], ebx
mov edi, 0x29
jmp 0x47d2de
test ecx, 0x1000
je 0x47d0eb
mov dword [esp + 0x1c], 0x7d
jmp 0x47c98c
mov esi, dword [esp + 0xec]
lea ecx, [esp + 0x10]
push 0
push dword [esp + 0x30]
mov edx, esi
mov dword [esp + 0x74], ebx
push dword [edi + 0x38]
call fcn.00478fe0
add esp, 0xc
mov edx, eax
cmp dword [esi], 0
jne 0x47db5f
test edx, edx
jns case.0x47b0cb.1
neg eax
cmp eax, 0x1a
jne 0x47d1b3
mov ebx, dword [esp + 0x10]
cmp byte [ebx + 1], 0x5c
jne 0x47d1a1
cmp byte [ebx + 2], 0x45
jne 0x47d1a1
mov esi, dword [esp + 0x14]
add ebx, 2
inc ebx
jmp 0x47ad90
mov esi, dword [esp + 0x14]
inc ebx
mov dword [esp + 0x38], 1
jmp 0x47ad90
cmp eax, 0x19
je 0x47b99a
mov ecx, dword [esp + 0x30]
cmp ecx, 0xfffffffe
jne 0x47d1d9
cmp eax, 5
jle 0x47d1d9
cmp eax, 0x17
mov ebx, 0xffffffff
cmovl ecx, ebx
mov dword [esp + 0x30], ecx
mov ebx, dword [esp + 0x5c]
mov ebp, ecx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x58], ebx
cmp eax, 0x1b
jne 0x47d738
mov ebx, dword [esp + 0x10]
mov eax, dword [edi + 0x24]
inc ebx
mov dword [esp + 0x4c], eax
lea ebp, [ebx + 1]
mov dword [esp + 0x10], ebx
mov eax, 0x3e
mov edi, 0x27
mov dword [esp + 0x98], ebp
cmp byte [ebx], 0x3c
cmove edi, eax
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x48], eax
mov al, byte [ebp]
cmp al, 0x2b
je 0x47d2a7
cmp al, 0x2d
je 0x47d2a7
mov edx, ebp
mov esi, 1
mov al, byte [edx]
test al, al
je 0x47d26d
mov ebp, dword [esp + 0x100]
movzx ecx, al
cmp ecx, edi
je 0x47d266
mov eax, dword [ebp + 0xc]
mov al, byte [ecx + eax]
mov ecx, 0
test al, 4
cmove esi, ecx
test al, 0x10
je 0x47d266
mov al, byte [edx + 1]
inc edx
test al, al
jne 0x47d243
mov ebp, dword [esp + 0x98]
movzx eax, byte [edx]
cmp eax, edi
je 0x47d28f
mov eax, dword [esp + 0xec]
mov ebp, dword [esp + 0x40]
mov dword [eax], 0x39
mov esi, dword [esp + 0x14]
inc ebx
jmp 0x47ad90
test esi, esi
jne 0x47d2d8
mov esi, dword [esp + 0xec]
mov dword [esp + 0x28], 1
jmp 0x47d78d
mov al, byte [ebx + 2]
lea ecx, [ebx + 2]
cmp al, 0x30
jb 0x47d2bd
cmp al, 0x39
ja 0x47d2bd
mov al, byte [ecx + 1]
inc ecx
cmp al, 0x30
jae 0x47d2b1
movzx eax, byte [ecx]
cmp eax, edi
je 0x47d2d8
mov ebp, dword [esp + 0x40]
inc ebx
mov dword [esi], 0x39
mov esi, dword [esp + 0x14]
jmp 0x47ad90
mov ebx, ebp
mov dword [esp + 0x10], ebx
mov dl, byte [ebx]
movzx esi, dl
cmp esi, 0x2b
jne 0x47d383
inc ebx
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
cmp al, 0x30
jb 0x47debd
cmp al, 0x39
ja 0x47debd
mov al, byte [ebx]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
cmp al, 0x30
jb 0x47d32f
nop
cmp al, 0x39
ja 0x47d32b
movzx eax, al
lea ecx, [ecx + ecx*4]
inc ebx
lea ecx, [ecx - 0x18]
mov dword [esp + 0x10], ebx
lea ecx, [eax + ecx*2]
mov al, byte [ebx]
cmp al, 0x30
jae 0x47d310
mov dword [esp + 0x1c], ecx
movzx eax, byte [ebx]
cmp eax, edi
jne 0x47df75
cmp esi, 0x2d
jne 0x47d714
test ecx, ecx
je 0x47dd00
mov edi, dword [esp + 0x100]
mov esi, dword [edi + 0x38]
sub esi, ecx
inc esi
test esi, esi
jg 0x47d90c
mov eax, dword [esp + 0xec]
mov dword [eax], 0xf
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
cmp esi, 0x2d
jne 0x47d303
mov al, byte [ebx + 1]
cmp al, 0x30
jb 0x47d3a1
cmp al, 0x39
ja 0x47d3a1
inc ebx
mov dword [esp + 0x10], ebx
jmp 0x47d303
mov edi, dword [esp + 0x100]
xor eax, eax
lea ecx, [esp + 0x50]
xor ebp, ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], ebp
cmp dl, 0x29
je 0x47d42a
lea ecx, [ecx]
cmp dl, 0x3a
je 0x47d422
movzx eax, dl
inc ebx
sub eax, 0x2d
mov dword [esp + 0x10], ebx
cmp eax, 0x4b
ja case.0x47d3e0.46
movzx eax, byte [eax + 0x47e304]
jmp dword [eax*4 + 0x47e2e0]
lea ecx, [esp + 0x34]
jmp 0x47d41b
or dword [ecx], 0x80000
or dword [edi + 0x50], 0x400
jmp 0x47d41b
or dword [ecx], 1
jmp 0x47d41b
or dword [ecx], 2
jmp 0x47d41b
or dword [ecx], 4
jmp 0x47d41b
or dword [ecx], 8
jmp 0x47d41b
or dword [ecx], 0x200
jmp 0x47d41b
or dword [ecx], 0x40
mov dl, byte [ebx]
cmp dl, 0x29
jne 0x47d3c0
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x34]
or ebp, dword [esp + 0x2c]
not eax
and ebp, eax
cmp byte [ebx], 0x29
jne 0x47d4a1
mov eax, dword [edi + 0x14]
mov esi, dword [esp + 0x14]
add eax, 3
cmp esi, eax
jne 0x47d45a
mov eax, dword [esp + 0x104]
test eax, eax
je 0x47d455
cmp dword [eax], 6
jne 0x47d45a
mov dword [edi + 0x4c], ebp
jmp 0x47d482
mov eax, ebp
shr eax, 9
and eax, 1
mov dword [esp + 0xb0], eax
xor eax, 1
mov dword [esp + 0xb4], eax
mov eax, ebp
and eax, 1
shl eax, 0x1c
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xb8]
inc ebx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], 0
mov dword [eax], ebp
mov ebp, dword [esp + 0x40]
jmp 0x47ad90
mov eax, dword [esp + 0x14]
inc ebx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x1c], 0x7d
mov dword [esp + 0x10], ebx
jmp 0x47c998
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
jmp 0x47c998
mov ecx, 1
cmp dword [esp + 0x104], 0
lea eax, [esp + 0x68]
mov dword [esp + 0x98], 0
cmove eax, dword [esp + 0x98]
push eax
push dword [esp + 0x104]
lea eax, [esp + 0x98]
push dword [esp + 0x100]
push eax
lea eax, [esp + 0xb4]
push eax
xor eax, eax
cmp ebx, 0x81
sete al
add eax, dword [esp + 0x110]
push eax
push edx
push dword [esp + 0x64]
lea eax, [esp + 0x30]
push ecx
push dword [esp + 0x110]
lea edx, [esp + 0x64]
mov ecx, ebp
push eax
call fcn.0047e350
add esp, 0x2c
test eax, eax
je 0x47db5f
mov eax, dword [esp + 0x1c]
cmp eax, 0x7b
jne 0x47d5dd
mov eax, dword [esp + 0x100]
cmp dword [eax + 0x38], esi
jg 0x47d56a
mov eax, dword [esp + 0x14]
mov byte [eax], 0x7c
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0xa4]
mov ebx, dword [esp + 0x10]
cmp byte [ebx], 0x29
jne 0x47df52
mov ebp, dword [esp + 0x104]
test ebp, ebp
je 0x47d66e
mov esi, dword [esp + 0x68]
mov ecx, 0x7fffffeb
mov edx, dword [ebp]
sub ecx, edx
lea eax, [esi - 6]
cmp ecx, eax
jl 0x47db2f
lea eax, [esi - 6]
mov esi, dword [esp + 0x14]
add eax, edx
mov dword [ebp], eax
mov ebp, dword [esp + 0x40]
mov dword [esi + 1], 0x720300
mov byte [esi + 5], 3
add esi, 6
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], esi
inc ebx
jmp 0x47ad90
cmp eax, 0x77
jl 0x47d5f1
cmp eax, 0x7a
jg 0x47d5f1
mov ecx, dword [esp + 0x100]
dec dword [ecx + 0x48]
cmp eax, 0x81
jne 0x47d56a
cmp dword [esp + 0x104], 0
jne 0x47d56a
mov ebx, dword [esp + 0x14]
xor esi, esi
mov edx, ebx
movzx ecx, byte [edx + 1]
inc esi
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x72
jne 0x47d612
cmp byte [ebx + 3], 0x8b
jne 0x47d640
cmp esi, 1
jg 0x47df04
mov edx, 0x8b
jmp 0x47d56e
cmp esi, 2
jg 0x47df2b
cmp esi, 1
jne 0x47d56a
mov edx, dword [esp + 0x1c]
or eax, 0xffffffff
or ecx, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0xa4], ecx
jmp 0x47d57c
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x14], esi
cmp edx, 0x8b
je 0x47c8ef
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x40], ebp
mov dword [esp + 0xa0], 0
cmp edx, 0x7b
jl 0x47d6f9
cmp ebp, 0xfffffffe
jne 0x47d6d4
test ecx, ecx
js 0x47d6c3
or ebp, 0xffffffff
mov dword [esp + 0x30], ecx
mov dword [esp + 0xa0], 1
mov dword [esp + 0x40], ebp
jmp 0x47d6e7
or ebp, 0xffffffff
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x40], ebp
jmp 0x47d6e7
test ecx, ecx
js 0x47d6e7
test eax, eax
jns 0x47d6ef
mov eax, ecx
or eax, edi
mov dword [esp + 0x90], eax
test eax, eax
js 0x47d289
mov dword [esp + 0x5c], eax
inc ebx
jmp 0x47ad90
cmp edx, 0x77
jne 0x47d289
test eax, eax
js 0x47d289
mov dword [esp + 0x5c], eax
inc ebx
jmp 0x47ad90
cmp esi, 0x2b
jne 0x47d901
test ecx, ecx
je 0x47dd00
mov edi, dword [esp + 0x100]
add ecx, dword [edi + 0x38]
mov dword [esp + 0x1c], ecx
jmp 0x47d908
cmp eax, 0x1c
jne 0x47da33
mov ebx, dword [esp + 0x10]
mov al, byte [ebx + 1]
cmp al, 0x3c
je 0x47d764
cmp al, 0x27
je 0x47d764
cmp al, 0x7b
je 0x47d764
mov dword [esi], 0x45
inc ebx
mov esi, dword [esp + 0x14]
jmp 0x47ad90
inc ebx
mov dword [esp + 0x28], 0
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
cmp al, 0x3c
jne 0x47d77e
mov edi, 0x3e
jmp 0x47d78d
cmp al, 0x27
mov edi, 0x7d
mov eax, 0x27
cmove edi, eax
mov eax, dword [esp + 0x100]
inc ebx
mov dword [esp + 0x10], ebx
mov edx, ebx
mov dword [esp + 0x50], edx
mov ecx, dword [eax + 0xc]
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
je 0x47d7be
jmp 0x47d7b0
inc ebx
mov dword [esp + 0x10], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
jne 0x47d7b0
mov ebp, ebx
sub ebp, edx
cmp dword [esp + 0x104], 0
je 0x47d825
test ebp, ebp
je 0x47dfd0
movzx eax, byte [ebx]
cmp eax, edi
jne 0x47dfb4
cmp ebp, 0x20
jg 0x47df98
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x100]
push ecx
shr eax, 3
mov ecx, edi
and eax, 1
mov esi, dword [edi + 0x1c]
push eax
push ebp
mov dword [edi + 0x1c], ebx
call fcn.00479a00
mov ebx, eax
mov dword [edi + 0x1c], esi
add esp, 0xc
mov dword [esp + 0x1c], ebx
test ebx, ebx
jns 0x47d8a4
xor ebx, ebx
mov dword [esp + 0x1c], ebx
jmp 0x47d8a4
mov ebx, dword [esp + 0x100]
xor edi, edi
mov esi, dword [ebx + 0x28]
cmp edi, dword [ebx + 0x2c]
jge 0x47d87d
push ebp
lea eax, [esi + 2]
push eax
push edx
call fcn.00489070
add esp, 0xc
test eax, eax
jne 0x47d84e
cmp byte [esi + ebp + 2], al
je 0x47d85b
add esi, dword [ebx + 0x30]
inc edi
mov edx, dword [esp + 0x50]
cmp edi, dword [ebx + 0x2c]
jl 0x47d836
mov edx, dword [esp + 0x50]
cmp edi, dword [ebx + 0x2c]
jge 0x47d87d
movzx eax, byte [esi]
movzx ebx, byte [esi + 1]
mov edi, dword [esp + 0x100]
shl eax, 8
or ebx, eax
mov dword [esp + 0x1c], ebx
jmp 0x47d8a4
mov eax, dword [esp + 0x2c]
mov edi, ebx
push ecx
shr eax, 3
mov ecx, edi
and eax, 1
push eax
push ebp
call fcn.00479a00
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
test ebx, ebx
jle 0x47dd55
cmp dword [esp + 0x28], 0
jne 0x47d908
mov ebp, dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
cmp ecx, 0xfffffffe
mov eax, 0xffffffff
mov dword [esp + 0x24], esi
cmove ecx, eax
test byte [esp + 0x2c], 1
mov dword [esp + 0x30], ecx
setne al
add al, 0x6d
mov byte [esi], al
mov eax, ebx
sar eax, 8
mov byte [esi + 1], al
mov byte [esi + 2], bl
add esi, 3
mov dword [esp + 0x14], esi
cmp ebx, 0x20
jge 0x47da44
mov edx, 1
mov ecx, ebx
mov eax, edx
shl eax, cl
jmp 0x47da4b
mov edi, dword [esp + 0x100]
mov esi, dword [esp + 0x1c]
cmp dword [esp + 0x104], 0
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + 0x14]
mov dword [esp + 0x24], edx
jne 0x47d9e6
mov byte [edx], 0
test esi, esi
je 0x47d93e
mov ecx, dword [edi + 0x14]
push esi
call fcn.00479ea0
mov edx, dword [esp + 0x18]
add esp, 4
mov ebx, eax
test ebx, ebx
jne 0x47d9b3
mov eax, dword [esp + 0x2c]
xor edx, edx
push ecx
shr eax, 3
mov ecx, edi
and eax, 1
push eax
push esi
call fcn.00479a00
add esp, 0xc
test eax, eax
js 0x47dd55
mov eax, dword [edi + 0x34]
mov ebx, dword [edi + 0x14]
add eax, 0xffffff9c
add eax, dword [edi + 0x10]
add ebx, esi
cmp dword [edi + 0x24], eax
jb 0x47d98e
mov ecx, edi
call fcn.00478f00
mov ecx, dword [esp + 0xec]
mov dword [ecx], eax
test eax, eax
jne 0x47db5f
mov edx, dword [esp + 0x14]
mov ecx, edx
sub ecx, dword [edi + 0x14]
mov eax, dword [edi + 0x24]
inc ecx
sar ecx, 8
mov byte [eax], cl
mov cl, dl
sub cl, byte [edi + 0x14]
mov eax, dword [edi + 0x24]
inc cl
mov byte [eax + 1], cl
add dword [edi + 0x24], 2
jmp 0x47d9ea
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
jne 0x47d9e6
cmp dword [esp + 0xfc], ecx
jg 0x47d9e6
push edi
push ecx
push dword [esp + 0x100]
mov ecx, ebx
call fcn.0047a360
add esp, 0xc
test eax, eax
jne 0x47dfec
mov edx, dword [esp + 0x14]
mov byte [edx], 0x6f
mov eax, ebx
sub eax, dword [edi + 0x14]
sar eax, 8
mov byte [edx + 1], al
sub bl, byte [edi + 0x14]
mov byte [edx + 2], bl
add edx, 3
cmp dword [esp + 0x30], 0xfffffffe
mov esi, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0xa0], 0
jne 0x47c8eb
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x40]
inc ebx
mov dword [esp + 0x30], 0xffffffff
jmp 0x47ad90
cmp eax, 0x23
jl 0x47da87
mov ebx, 0xffffffdd
sub ebx, edx
jmp 0x47d8b3
mov eax, 1
mov edx, eax
or dword [edi + 0x44], eax
cmp ebx, dword [edi + 0x40]
jle 0x47da56
mov dword [edi + 0x40], ebx
mov ecx, dword [edi + 0x20]
test ecx, ecx
je 0x47c8eb
movzx eax, word [ecx + 4]
cmp eax, ebx
je 0x47da79
mov ecx, dword [ecx]
test ecx, ecx
jne 0x47da61
mov ebx, dword [esp + 0x10]
inc ebx
jmp 0x47ad90
mov word [ecx + 6], dx
mov ebx, dword [esp + 0x10]
inc ebx
jmp 0x47ad90
cmp eax, 0x16
je 0x47e013
cmp eax, 0xf
je 0x47e013
cmp eax, 0x10
je 0x47e013
cmp eax, 5
jle 0x47dab6
cmp eax, 0x17
jge 0x47dab6
mov esi, dword [esp + 0x14]
mov dword [esp + 0x24], esi
jmp 0x47dac2
mov esi, dword [esp + 0x14]
mov dword [esp + 0x24], 0
cmp edx, 0xfffffff2
mov ecx, 0xd
cmove eax, ecx
mov byte [esi], al
inc esi
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], esi
inc ebx
jmp 0x47ad90
mov edi, dword [esp + 0x100]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x10]
cmp ecx, 0xfffffffe
jne 0x47db11
movzx edx, dl
or ebp, 0xffffffff
or edx, dword [esp + 0x9c]
inc ebx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x30], edx
jmp 0x47ad90
movzx eax, byte [esi - 1]
mov ebp, ecx
or eax, dword [edi + 0x54]
or eax, dword [esp + 0x9c]
inc ebx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x5c], eax
jmp 0x47ad90
mov eax, dword [esp + 0xec]
mov dword [eax], 0x14
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x1e
mov eax, dword [esp + 0xe8]
mov ebx, dword [esp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x1f
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xe8]
mov dword [ebx], 7
mov ebx, dword [esp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xe8]
mov dword [ebx], 0x47
mov ebx, dword [esp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xe8]
mov dword [ebp], 8
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 6
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
cmp byte [ebx + 1], 0x3a
mov ecx, 0xd
mov eax, 0x1f
cmove eax, ecx
mov ecx, dword [esp + 0xec]
mov dword [ecx], eax
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xe8]
mov dword [edx], 9
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x3b
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x42
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x3c
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x3c
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x3a
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov ebx, dword [esp + 0x10]
test ecx, ecx
mov ecx, dword [esp + 0xec]
mov eax, 0xf
mov edx, 0x23
cmove eax, edx
mov dword [ecx], eax
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0xf
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
dec ebx
mov dword [eax], 0x1a
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x1c
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
inc ebx
mov dword [eax], 0x18
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0xec]
mov dword [eax], 0x27
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x26
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x31
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x2a
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x2b
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x41
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x3f
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
dec ebx
mov dword [eax], 0xc
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x36
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x1b
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0xe
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x1d
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xe8]
mov dword [esi], 0x30
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xe8]
mov dword [esi], 0x2a
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xe8]
mov dword [esi], 0x3e
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x28
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xe8]
mov ebx, dword [esp + 0x10]
mov dword [esi], 0x2d
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xf0]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x104]
mov dword [eax], edx
mov eax, dword [esp + 0xf4]
mov edx, dword [esp + 0x5c]
mov dword [eax], edx
mov eax, dword [esp + 0xbc]
mov dword [eax], ecx
mov eax, dword [esp + 0xe8]
mov dword [eax], ebx
test esi, esi
je 0x47e090
mov edx, dword [esp + 0x14]
mov edi, 0x7fffffeb
mov ecx, dword [esi]
mov eax, edx
mov ebp, dword [esp + 0x94]
sub edi, ecx
sub eax, ebp
cmp edi, eax
jl 0x47db2f
sub ecx, ebp
add ecx, edx
mov dword [esi], ecx
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x34
mov eax, dword [esp + 0xe8]
pop edi
pop esi
pop ebp
mov dword [eax], ebx
xor eax, eax
pop ebx
add esp, 0xd4
ret