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

Disassembly:
movzx esi, word [edi]
fld qword [0x4b69f8]
test esi, esi
je 0x407cd4
mov eax, dword [ebp + 0x28]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x10]
lea eax, [eax + ecx*2]
add eax, 0xffffff38
cmp dword [ebp + 0x2c], 0
je 0x407a39
cmp edx, eax
ja 0x482315
mov eax, dword [ebp - 0xb0]
cmp edx, eax
jb 0x408770
mov ecx, edx
sub ecx, eax
mov eax, dword [ebp + 0x2c]
sar ecx, 1
mov edx, dword [eax]
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jl 0x482012
lea eax, [edx + ecx]
mov ecx, dword [ebp + 0x2c]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x407b9f
cmp ecx, dword [ebp - 0xb8]
jbe 0x407bad
mov eax, dword [ebp - 8]
fstp st(0)
mov edi, dword [ebp - 0xb8]
sub eax, ecx
and eax, 0xfffffffe
push eax
push ecx
push edi
call fcn.00425f80
fld qword [0x4b69f8]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 8]
sub ecx, edi
sar ecx, 1
add esp, 0xc
neg ecx
mov dword [ebp - 0x20], edi
mov edi, dword [ebp - 4]
lea edx, [edx + ecx*2]
mov dword [ebp - 8], edx
mov dword [ebp - 0xb0], edx
cmp dword [ebp - 0x34], 0
jne 0x47f59f
and ebx, 8
jne 0x47f626
cmp esi, 0x2a
je 0x407f5d
cmp esi, 0x3f
je 0x407f5d
cmp esi, 0x2b
je 0x407f5d
cmp esi, 0x7b
je 0x47f71f
xor ecx, ecx
cmp dword [ebp - 0x88], ecx
jne 0x47f737
mov eax, dword [ebp - 0xc]
test eax, 0x4000
jne 0x47f77d
cmp esi, 0x5f
jae 0x407a4a
cmp esi, 0x2f
jae 0x407b91
cmp esi, 0x28
je 0x407bb5
test esi, esi
je case.0x4079d2.41
lea eax, [esi - 0x24]
cmp eax, 0x58
ja case.0x4079d2.37
movzx eax, byte [eax + 0x408824]
jmp dword [eax*4 + 0x4087f4]
xchg dword [eax], eax
mov eax, dword [ebp + 0x10]
fstp st(0)
mov ecx, dword [ebp - 0x70]
mov ebx, dword [ebp + 0x2c]
mov dword [eax], ecx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x30]
mov dword [eax], ecx
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x60]
mov dword [eax], ecx
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x58]
mov dword [eax], ecx
mov eax, dword [ebp - 0x114]
mov dword [eax], edx
mov eax, dword [ebp + 8]
mov dword [eax], edi
test ebx, ebx
je 0x407a2d
sub edx, dword [ebp - 0xb0]
mov eax, dword [ebx]
mov ecx, 0x7fffffeb
sar edx, 1
sub ecx, eax
cmp ecx, edx
jl 0x4820db
lea ecx, [eax + edx]
mov dword [ebx], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x28]
cmp dword [ecx + 0x20], eax
jbe 0x40794d
jmp 0x482315
cmp esi, 0x7b
jae 0x4079a9
fstp st(0)
cmp dword [ebp - 0x24], 0
mov bx, si
mov dword [ebp - 0x10], 1
mov word [ebp - 0x108], bx
je 0x4087c4
and esi, 0xfc00
cmp esi, 0xd800
je 0x480e5b
mov esi, dword [ebp - 0x10]
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x20], edx
je 0x407af0
test al, 1
je 0x407d0f
movzx ecx, bx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x480e92
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac4a0]
shl eax, 7
and ecx, 0x8000007f
add byte [eax], al
cmp byte [ecx + 5], 0x49
jns 0x407ad0
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 8]
add eax, ecx
movzx eax, word [eax*2 + 0x49e608]
movzx eax, byte [eax*8 + 0x4ab10b]
test eax, eax
jne 0x407ce1
mov eax, dword [ebp - 0xc]
test al, 1
je 0x407d0f
mov eax, 0x1e
mov word [edx], ax
add edx, 2
mov dword [ebp - 8], edx
test esi, esi
je 0x407b26
mov ecx, esi
shr ecx, 1
mov edi, edx
lea esi, [ebp - 0x108]
rep movsd dword es:[edi], dword [esi]
adc ecx, ecx
rep movsw word es:[edi], word [esi]
mov esi, dword [ebp - 0x10]
lea edx, [edx + esi*2]
mov dword [ebp - 8], edx
cmp bx, 0xd
je 0x480ec9
cmp bx, 0xa
je 0x480ec9
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp - 0x30]
cmp eax, 0xfffffffe
je 0x407f67
mov ebx, dword [ebp - 0x70]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x68], eax
cmp esi, 1
jne 0x480f0b
movzx eax, word [edx - 2]
mov edi, dword [ebp - 4]
mov dword [ebp - 0x60], eax
mov eax, dword [ecx + 0x68]
or eax, dword [ebp - 0x90]
mov dword [ebp - 0x58], eax
mov ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x7c]
add edi, 2
mov dword [ebp - 4], edi
jmp 0x407893
pop ebp
hlt
cmp esi, 0x3f
jb case.0x4079d2.37
jmp 0x4079b2
mov edx, dword [ebp - 0xb8]
mov dword [ebp - 8], edx
jmp 0x407947
mov edx, dword [ebp - 8]
jmp 0x407947
mov ecx, dword [ebp + 0x28]
fstp st(0)
add edi, 2
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x40], edx
mov dword [ebp - 4], edi
ror byte [ecx - 0x48f00383], 0x17
jge 0x407bc2
movzx edx, word [edi]
mov bh, 0x17
mov ebx, eax
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x10], 0
mov esi, 0x85
mov dword [ebp - 0x50], 0
cmp edx, 0x2a
je 0x480f20
cmp edx, 0x3f
jne 0x408233
add edi, 2
mov dword [ebp - 4], edi
movzx edx, word [edi]
mov eax, edx
cmp eax, 0x53
jl 0x481151
cmp eax, 0x7c
jge 0x481151
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xf8], ebx
lea ecx, [ebp - 0xf8]
cmp dx, 0x29
je 0x407c5f
lea esp, [esp]
cmp dx, 0x3a
je 0x407c53
movzx eax, dx
add edi, 2
mov dword [ebp - 4], edi
cmp eax, 0x69
jne 0x481e7d
or dword [ecx], 1
movzx edx, word [edi]
cmp edx, 0x29
jne 0x407c30
mov ebx, dword [ebp - 0xf8]
mov eax, dword [ebp - 0xe0]
popfd
or bh, bh
invalid
or ebx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
not eax
and ebx, eax
cmp word [edi], 0x29
jne 0x481f09
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx + 0x14]
add eax, 4
cmp edx, eax
je 0x481ee2
test ebx, 0x200
jne 0x4087ce
add byte [ebx], dh
ror byte [ecx - 0x9f7b], 0xff
xor eax, eax
mov dword [ebp - 0xa0], eax
xor eax, 1
mov dword [ebp - 0xe4], eax
test bl, 1
je 0x481efa
mov dword [ebp - 0x90], 1
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x7c]
add edi, 2
mov dword [ebp - 0xc], ebx
mov dword [eax], ebx
mov dword [ebp - 0x20], 0
mov dword [ebp - 4], edi
jmp 0x407893
test ecx, ecx
je 0x4078a4
jmp 0x47f58b
mov ebx, dword [ebp - 0xc]
mov dword [edx], 0x90010
mov word [edx + 4], ax
add edx, 6
cmp dword [ebp - 0x30], 0xfffffffe
mov dword [ebp - 8], edx
je 0x480eb3
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x7c]
add edi, 2
mov dword [ebp - 4], edi
jmp 0x407893
mov eax, 0x1d
jmp 0x407afd
push 6
fstp st(0)
mov edx, 0x4b26c8
lea ecx, [edi + 2]
call fcn.004088f3
add esp, 4
test eax, eax
je 0x47f85b
push 6
mov edx, 0x4b26d0
lea ecx, [edi + 2]
call fcn.004088f3
add byte [eax], al
add esp, 4
test eax, eax
je 0x47f871
movzx eax, word [edi + 2]
mov esi, dword [ebp - 8]
mov dword [ebp - 0x20], esi
cmp eax, 0x3a
je 0x47f887
cmp eax, 0x2e
je 0x47f887
cmp eax, 0x3d
je 0x47f887
xor eax, eax
mov dword [ebp - 0x2c], eax
lea esp, [esp]
add edi, 2
mov dword [ebp - 4], edi
movzx ebx, word [edi]
cmp ebx, 0x5c
je 0x4086c6
test eax, eax
jne 0x407d9f
cmp ebx, 0x5e
je 0x40878b
cmp ebx, 0x5d
je 0x47f8bb
xor eax, eax
push 0x20
push eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0xd8]
push eax
call fcn.00420d50
mov edi, dword [ebp - 4]
add esi, 6
xor eax, eax
add esp, 0xc
mov edx, esi
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x14], edx
test ebx, ebx
je 0x47ff7e
cmp dword [ebp - 0x24], 0
je 0x407dfb
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
je 0x47f907
mov ecx, dword [ebp + 0x2c]
test ecx, ecx
je 0x407e0a
cmp esi, edx
ja 0x47f941
cmp dword [ebp - 0x34], 0
jne 0x47f95b
cmp ebx, 0x5b
je 0x47f983
cmp ebx, 0x5c
je 0x4086f6
mov edx, dword [ebp - 0x10]
cmp word [edi + 2], 0x5c
mov esi, dword [ebp - 0x34]
je 0x47fe0d
mov eax, edi
cmp ebx, 0xd
je 0x47fe2b
jg 0x407e48
add byte [ebx - 0x7bf0f505], al
loopne 0x407ec8
cmp ebx, 0xa
je 0x47fe2b
jg 0x407e51
pop es
add byte [ebp + 0x660b75f6], al
cmp dword [edi + 2], 0x2d
test esi, esi
jne 0x407e5a
cmp word [edi + 2], 0x2d
jg 0x407e55
sub eax, 0x6b5840f
add byte [eax], al
je 0x40850f
test byte [ebp - 0x7cfffffa], dh
cli
add cl, byte [edi]
invalid
cmp edx, 2
jl 0x407f54
cmp edx, 1
je 0x4080a4
push ebx
push ebx
push dword [ebp + 0x28]
push dword [ebp - 0xc]
lea edx, [ebp - 0x5c]
lea ecx, [ebp - 0xd8]
call fcn.0040887d
mov ecx, dword [ebp - 0x28]
add esp, 0x10
add ecx, eax
mov dword [ebp - 0x28], ecx
mov esi, dword [ebp - 0x5c]
mov edi, dword [ebp - 4]
mov dword [ebp - 0x18], esi
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x14]
add edi, 2
mov dword [ebp - 4], edi
movzx ebx, word [edi]
test ebx, ebx
je 0x47ff5f
cmp ebx, 0x5d
jne 0x407de3
test eax, eax
jne 0x407de3
cmp esi, edx
ja 0x40879f
mov eax, dword [ebp - 0x50]
mov al, 0x8b
push ebp
rol byte [ebx + 0x675fefa], 1
mov edx, dword [ebp - 0x30]
cmp edx, 0xfffffffe
jne 0x407ed7
or edx, 0xffffffff
mov dword [ebp - 0x30], edx
mov ebx, dword [ebp - 0x70]
mov dword [ebp - 0x74], edx
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x84], ebx
mov ebx, dword [ebp - 0xc]
test eax, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x68], edx
jne 0x4800a4
mov edi, dword [ebp - 0x2c]
cmp edi, eax
jne 0x4087a9
mov eax, 0x6e
mov edx, dword [ebp - 8]
add edx, 2
cmp dword [ebp + 0x2c], 0
mov word [edx - 2], ax
mov dword [ebp - 8], edx
jne 0x407f3d
test edi, edi
jne 0x4087b3
push 0x20
lea eax, [ebp - 0xd8]
push eax
push edx
call fcn.0041ee80
mov edx, dword [ebp - 8]
add esp, 0xc
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x7c]
add edx, 0x20
add edi, 2
mov dword [ebp - 8], edx
mov dword [ebp - 4], edi
jmp 0x407893
inc edx
mov dword [ebp - 0x10], edx
jmp 0x407e63
mov ecx, 1
jmp 0x407992
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x68], eax
fmul dword [ebx + 0x4589a845]
cwde
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x74], 0xffffffff
cmp esi, 1
jne 0x480ed8
movzx ebx, bx
mov dword [ebp - 0x70], ebx
mov ebx, dword [ebp - 0xc]
mov dword [ebp - 0x30], eax
cmp esi, 1
je 0x407cfe
jmp 0x480ef6
mov ebx, dword [ebp - 0xc]
fstp st(0)
push 0
mov dword [ebp - 0x80], edi
mov edi, dword [ebp + 0x28]
push ebx
push dword [edi + 0x40]
lea edx, [ebp - 0xac]
push dword [ebp + 0xc]
lea ecx, [ebp - 4]
call fcn.00408e6e
mov edx, dword [ebp + 0xc]
add esp, 0x10
cmp dword [edx], 0
mov esi, eax
jne 0x4087ec
test esi, esi
je 0x4084c5
cmp esi, 0x1a
je 0x480c5b
cmp esi, 0x19
je 0x480e50
mov ecx, dword [ebp - 0x30]
cmp ecx, 0xfffffffe
jne 0x408006
lea eax, [esi - 6]
cmp eax, 0x10
ja 0x408006
or ecx, 0xffffffff
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x68], eax
cmp esi, 0x1b
je 0x480c86
cmp esi, 0x1c
je 0x480d16
test esi, esi
js 0x480d6c
cmp esi, 0xf
je 0x480dd1
cmp esi, 0x10
je 0x480dd1
cmp esi, 5
je 0x480d78
cmp esi, 4
je 0x480d78
cmp esi, 1
je 0x480d78
cmp esi, 0x1d
jge 0x480d8e
mov edx, dword [ebp - 8]
lea eax, [esi - 6]
cmp eax, 0x10
ja 0x480db2
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x24], 0
je 0x480dbe
mov ecx, dword [ebp - 0x7c]
mov word [edx], si
mov edi, dword [ebp - 4]
add edx, 2
add edi, 2
mov dword [ebp - 8], edx
mov dword [ebp - 4], edi
jmp 0x407893
cmp word [edi + 2], 0x5d
jne 0x407e6c
jmp 0x47ff93
xor esi, esi
or eax, 0xffffffff
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x4820c4
test esi, esi
jne 0x4080ec
mov esi, dword [ebp - 0x84]
mov dword [ebp - 0x70], esi
mov esi, dword [ebp - 0x74]
mov dword [ebp - 0x30], esi
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x60], esi
mov esi, dword [ebp - 0x68]
mov dword [ebp - 0x58], esi
mov esi, dword [ebp - 0x54]
cmp esi, eax
je 0x48018d
mov dword [ebp - 0x78], 2
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x4c], ecx
test ebx, ebx
jne 0x480199
dec ebp
mov ah, 0x85
fisttp dword [edi]
test dword [eax + eax*4 - 0x48f0fff9], ecx
inc edi
add al, byte [ebx - 0x7bf0d408]
imul eax, dword [ecx - 0x77cfff9], 0x3f
movzx eax, word [edi + 2]
cmp eax, 0x2b
je 0x480285
cmp eax, 0x3f
jne 0x408477
mov eax, dword [ebp - 0xe4]
add edi, 2
mov dword [ebp - 4], edi
mov ebx, dword [ebp - 0x20]
mov dword [ebp - 0x10], eax
cmp word [ebx], 0x75
je 0x480299
movzx ecx, word [ebx]
cmp ecx, 0x1d
je 0x480894
cmp ecx, 0x1e
je 0x480894
cmp ecx, 0x1f
je 0x480894
cmp ecx, 0x20
je 0x480894
cmp ecx, 0x17
jae 0x408482
fstp st(0)
mov esi, 0x34
mov ebx, ecx
mov ecx, dword [ebp - 0x20]
movzx eax, word [ecx]
cmp eax, 0x10
je 0x480959
rol byte [edi - 0x77cfff9], cl
invalid
cmp eax, 0xf
je 0x480959
or eax, 0xffffffff
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x3c], 0
mov ecx, edx
mov edx, dword [ebp - 0x20]
mov dword [ebp - 8], edx
je 0x408212
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x54]
add edx, esi
mov dword [ebp - 0x10], edx
test eax, eax
jne 0x4809a4
pop es
add byte [ebx - 0x67c3bb3], cl
dec dword [edi]
test dword [edx - 0x72fff879], esp
inc edx
and dword [ebx - 0x76991fb3], ecx
add dword [ebp + 0x55890251], ecx
clc
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0xffffffff
jne 0x48096c
lea eax, [edx + 0x21]
mov ecx, dword [ebp - 0x20]
mov word [ecx], ax
lea edx, [ecx + 2]
mov dword [ebp - 8], edx
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
cmp dword [ebp - 0x24], 0
je 0x4081f1
test ebx, 0x10000000
jne 0x480aff
mov word [edx], bx
add edx, 2
mov ebx, dword [ebp + 0x28]
mov dword [ebp - 8], edx
test esi, esi
jns 0x480b21
mov edi, dword [ebp - 4]
cmp dword [ebp - 0x2c], 0
jne 0x480b33
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp - 0x78]
or dword [ecx + 0x68], eax
mov ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x7c]
add edi, 2
mov dword [ebp - 0x20], 0
mov dword [ebp - 4], edi
jmp 0x407893
add al, bh
inc ebp
loopne 0x408228
add byte [eax], al
add byte [ecx + 0x60e9fc7d], cl
idiv bh
dec dword [ebx + 0xa92c4d]
adc byte [eax], al
add byte [edi], cl
test ebx, ebx
pushfd
pop es
add byte [ebx + 0x40ff2845], cl
inc eax
mov ecx, dword [ebp + 0x2c]
test eax, 0x1000
jne 0x481f1c
mov eax, dword [ebp + 0x28]
inc dword [eax + 0x40]
mov edx, dword [ebp - 8]
mov ax, word [eax + 0x40]
mov word [edx + 4], ax
mov edi, dword [ebp - 4]
mov dword [ebp - 0x10], 1
inc ebp
lock add dword [eax], eax
add byte [eax], al
mov eax, dword [ebp + 0x28]
inc dword [eax + 0x58]
cmp dword [eax + 0x58], 0xfa
jg 0x482300
mov word [edx], si
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x4c], edx
mov edx, eax
neg ecx
mov eax, dword [edx + 0x68]
mov edi, dword [edx + 0x40]
mov dword [ebp - 0x44], eax
sbb eax, eax
lea ecx, [ebp - 0x8c]
and eax, ecx
mov dword [ebp - 0x8c], 0
cmp esi, 0x87
je 0x4087d8
test byte [ebx], dh
add eax, 0xd2330000
xor edx, edx
cmp esi, 0x7f
je 0x4087e2
cmp esi, 0x80
je 0x4087e2
xor ecx, ecx
push eax
push dword [ebp + 0x28]
lea eax, [ebp - 0x94]
push dword [ebp + 0x20]
push eax
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0xec]
push eax
mov eax, dword [ebp + 0x24]
add eax, edx
push eax
push dword [ebp - 0x10]
lea eax, [ebp - 4]
push dword [ebp - 0x50]
lea edx, [ebp - 0x4c]
push ecx
push dword [ebp + 0xc]
mov ecx, ebx
push eax
call fcn.00407474
add esp, 0x34
test eax, eax
je 0x4087ec
mov eax, dword [ebp + 0x28]
dec dword [eax + 0x58]
cmp esi, 0x81
je 0x481f29
cmp esi, 0x80
jle 0x481f45
mov ebx, dword [ebp + 0x2c]
mov edx, dword [ebp - 8]
cmp esi, 0x87
je 0x481f56
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa4]
mov edi, dword [ebp - 4]
cmp word [edi], 0x29
jne 0x4822eb
test ebx, ebx
je 0x4083fe
mov esi, dword [ebx]
mov ebx, dword [ebp - 0x8c]
mov ecx, 0x7fffffeb
sub ecx, esi
lea eax, [ebx - 4]
cmp ecx, eax
jl 0x4820db
mov ecx, dword [ebp + 0x2c]
lea eax, [ebx - 4]
mov ebx, dword [ebp - 0xc]
add eax, esi
mov dword [ecx], eax
mov ecx, dword [ebp - 0x7c]
mov dword [edx + 2], 0x780002
js 0x40838c
mov eax, 2
mov word [edx + 6], ax
mov edi, dword [ebp - 4]
add edx, 8
add edi, eax
mov dword [ebp - 8], edx
mov dword [ebp - 4], edi
jmp 0x407893
mov eax, dword [ebp - 0x30]
fstp st(0)
cmp eax, 0xfffffffe
jne 0x4083b8
or eax, 0xffffffff
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x20], edx
test bl, 4
jne 0x40877a
mov eax, 0xc
mov ecx, dword [ebp - 0x7c]
mov word [edx], ax
mov edi, dword [ebp - 4]
add edx, 2
add edi, 2
mov dword [ebp - 8], edx
mov dword [ebp - 4], edi
jmp 0x407893
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 8], edx
cmp esi, 0x91
je 0x407b80
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x58]
mov dword [ebp - 0x68], ebx
mov ebx, dword [ebp - 0x70]
mov dword [ebp - 0x84], ebx
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x9c], 0
cmp esi, 0x81
jl 0x481fed
cmp ebx, 0xfffffffe
je 0x481fb4
test ecx, ecx
jns 0x40873a
test eax, eax
js 0x407b80
mov ecx, dword [ebp - 0xb4]
mov ebx, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x58], eax
mov dword [ebp - 4], edi
jmp 0x407893
mov eax, dword [ebp - 0xa0]
jmp 0x40812f
cmp ecx, 0x6e
jne 0x4085a5
mov ecx, dword [ebp - 0x3c]
fstp st(0)
test ecx, ecx
je 0x4087ba
add byte [eax], al
test esi, esi
jne 0x480860
cmp ecx, 0xffffffff
je 0x4084f8
cmp ecx, 1
jne 0x480872
mov ebx, dword [ebp + 0x28]
add eax, 0x66
mov word [edx], ax
mov edi, dword [ebp - 4]
add edx, 2
mov dword [ebp - 8], edx
jmp 0x408208
mov ebx, dword [ebp - 0xac]
cmp ebx, 0xffff
ja 0x480079
mov edx, dword [ebp - 8]
mov esi, 1
mov word [ebp - 0x108], bx
mov dword [ebp - 0x10], esi
jmp 0x407a85
xor esi, esi
lea eax, [esi + 1]
jmp 0x4080b9
add eax, 0x62
mov word [edx], ax
add edx, 2
mov dword [ebp - 8], edx
mov edi, dword [ebp - 4]
mov ebx, dword [ebp + 0x28]
jmp 0x408208
add edi, 4
mov dword [ebp - 4], edi
cmp word [edi], 0x5c
je 0x47fe3a
movzx ecx, word [edi]
test cx, cx
je 0x408795
test esi, esi
jne 0x408538
cmp ecx, 0x5d
je 0x408795
cmp dword [ebp - 0x24], 0
mov esi, ecx
mov dword [ebp - 0x98], esi
je 0x408558
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
je 0x47fe98
cmp dword [ebp - 0x34], 0
jne 0x408570
cmp esi, 0x5c
je 0x47fec3
pop esp
jns 0x40856d
add byte [ebx - 0x7bf0a402], al
scasd eax, dword es:[edi]
cmp esi, 0x5b
je 0x47ff1f
jns 0x408576
add byte [ebx - 0xcc4f3b3], cl
mov ecx, dword [ebp + 0xc]
cmp esi, ebx
jb 0x48209a
sbb byte [edi], 0x9b
pop es
add byte [edi], cl
test cl, bl
clc
invalid
je 0x407e5a
mov dword [ebp - 0x10], 2
cmp esi, 0xd
je 0x47ff50
cmp esi, 0xa
je 0x47ff50
mov eax, dword [ebp + 0x28]
push esi
push ebx
push eax
jmp 0x407e71
cmp ecx, 0x6f
je 0x40848b
cmp ecx, 0x70
je 0x40848b
invalid
cmp ecx, 0x71
je 0x40848b
cmp ecx, 0x72
je 0x40848b
cmp ecx, 0x73
je 0x40848b
cmp ecx, 0x74
je 0x40848b
cmp ecx, 0x7d
jb 0x48083b
add byte [edi], 0
mov eax, 0x87
cmp cx, ax
ja 0x48083b
mov esi, edx
sub esi, ebx
xor ebx, ebx
sar esi, 1
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], ebx
cmp cx, ax
je 0x48030d
mov eax, 0x81
cmp cx, ax
mov eax, dword [ebp - 0x54]
jb 0x480329
mov ecx, dword [ebp - 0x3c]
test eax, eax
jne 0x4803a7
push dword [ebp - 0x40]
fstp st(0)
mov edi, dword [ebp - 0x20]
push dword [ebp + 0x28]
cmp ecx, 1
push dword [ebp - 0x24]
mov word [edx], ax
mov ecx, edi
jg 0x48035a
lea edx, [eax + 1]
call fcn.0041e3f9
mov edx, dword [ebp - 0x14]
add esp, 0xc
lea eax, [edx + edx]
push eax
lea esi, [edi + 2]
les ecx, [ecx*4 - 0x72afedfc]
ja 0x40865b
push edi
push esi
call fcn.00425f80
mov edx, dword [ebp - 8]
add edx, 2
add esp, 0xc
mov dword [ebp - 8], edx
cmp dword [ebp - 0x3c], ebx
je 0x48034a
mov eax, dword [ebp - 0x10]
mov ecx, edi
add eax, 0x92
mov dword [ebp - 0x20], esi
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x1c], ecx
mov word [edi], ax
mov eax, dword [ebp - 0x3c]
mov edi, dword [ebp - 4]
dec eax
mov dword [ebp - 0x3c], eax
test eax, eax
js 0x4806e7
cmp dword [ebp + 0x2c], 0
je 0x4086ab
test eax, eax
jg 0x48052f
lea ebx, [eax - 1]
test ebx, ebx
jns 0x480586
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x408507
jmp 0x4806ac
cmp word [edi + 2], 0x45
lea ecx, [edi + 2]
je 0x408784
push 3
mov edx, 0x4b26d8
call fcn.004088f3
dec ebx
add al, ch
adc eax, dword [edx]
add byte [eax], al
add esp, 4
test eax, eax
jne 0x407da8
mov eax, dword [ebp - 0x2c]
add edi, 6
jmp 0x407d80
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp + 0x28]
jge 0x408724
push 1
push ebx
push dword [edi + 0x40]
lea edx, [ebp - 0xac]
push dword [ebp + 0xc]
lea ecx, [ebp - 4]
call fcn.00408e6e
mov esi, eax
mov eax, dword [ebp + 0xc]
add esp, 0x10
cmp dword [eax], 0
jne 0x4087ec
test esi, esi
jne 0x47fb5e
mov ebx, dword [ebp - 0xac]
mov edi, dword [ebp - 4]
jmp 0x407e26
test eax, eax
jns 0x40845a
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0xb4], eax
mov eax, ecx
or eax, dword [ebp - 0x44]
mov dword [ebp - 0x94], eax
jmp 0x408452
mov edx, eax
mov dword [ebp - 8], edx
jmp 0x4078d5
mov eax, 0xd
jmp 0x4083e4
mov edi, ecx
jmp 0x407d80
mov eax, 1
jmp 0x407d76
mov edi, eax
mov dword [ebp - 4], edi
jmp 0x407e5a
mov eax, 1
jmp 0x407ec9
mov eax, 0x6f
jmp 0x407f0d
xor ecx, ecx
jmp 0x480134
mov edx, ebx
mov dword [ebp - 8], edx
jmp 0x408212
mov esi, 1
jmp 0x407a85
mov eax, 1
jmp 0x407c92
mov edx, 1
jmp 0x4082bc
mov ecx, 1
jmp 0x4082be
mov edi, dword [ebp - 4]
jmp 0x482320
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x11c
mov eax, dword [0x4c221c]
push ebx
push esi
push edi
mov dword [esp + 0x14], ecx
test al, 1
je 0x4113cf
mov edi, dword [ebp + 0x10]
xor eax, eax
push 8
mov word [esp + 0x60], 1
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], 0
add byte [eax], al
add byte [ecx - 0x76ebdbbc], cl
inc esp
and al, 0x2c
mov word [esp + 0x30], 1
call fcn.0041f4ea
mov ebx, eax
add esp, 4
mov dword [esp + 0x34], eax
test ebx, ebx
je 0x41150c
mov dword [ebx], 0x14
mov esi, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov ecx, dword [esi]
mov dword [ebx + 4], 0
mov eax, dword [edx + 4]
mov dword [esp + 0x58], ebx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x54], 1
movsx eax, word [eax + 0xa]
mov dword [esp + 0x18], 0x17
mov dword [esp + 0x64], eax
jmp 0x40ff3b
mov byte [esp + 0x1f], 1
cmp byte [esp + 0x1f], 0
mov eax, dword [esi]
mov ecx, dword [esp + 0x68]
mov eax, dword [eax + 0x18]
mov dword [ecx + 0x1c], eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + 0x1c]
mov dword [ecx + 0x18], eax
mov ecx, dword [esi]
mov eax, dword [0x4c2210]
mov dword [ecx + 0x18], eax
mov ecx, dword [esi]
mov eax, dword [0x4c220c]
mov dword [ecx + 0x1c], eax
je 0x4103fb
mov eax, dword [esi]
test eax, eax
je 0x4103fb
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4103fb
push dword [esp + 0x6c]
mov esi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x18]
inc dword [esi]
push eax
push esi
push dword [ebp + 8]
call fcn.00411820
test eax, eax
js 0x47a7ef
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
mov ecx, dword [esi]
cmp ecx, eax
je case.0x41104b.4
mov esi, dword [edx + 4]
mov edx, dword [esi + ecx*4]
movzx eax, word [edx + 8]
cmp ax, 0x7f
je case.0x41104b.4
cwde
cmp eax, 0x33
je 0x410002
cmp eax, 0x4f
je case.0x41104b.4
cmp eax, 5
je 0x41034b
cmp eax, 0x58
ja case.0x41104b.4
movzx eax, byte [eax + 0x41162c]
jmp dword [eax*4 + 0x4115c0]
adc eax, 0x28b0041
mov eax, dword [edx]
cmp eax, 4
jl 0x41103a
cmp eax, 0x27
jge 0x41103a
mov esi, 0x14
mov dword [esp + 0x18], esi
lea esp, [esp]
mov cl, byte [esp + 0x5d]
test cl, cl
jne 0x410534
mov eax, ebx
mov eax, dword [eax]
imul eax, eax, 0x15
movzx eax, byte [eax + esi + 0x4bbc20]
cmp eax, 3
jne 0x4102b4
cmp dword [esp + 0x24], 1
jne 0x4115b5
xor edi, edi
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41077e
test ebx, ebx
je 0x40fff7
mov esi, dword [ebx + 4]
push ebx
call fcn.0041f55e
add esp, 4
mov ebx, esi
test esi, esi
jne 0x40ffe5
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov esi, dword [esp + 0x24]
mov dword [esp + 0x18], 0x16
test esi, esi
jne 0x41071e
cmp edi, 0x4c2220
je 0x41005c
cmp dword ds:[edi + 0xc], 4
cmp dword [edi + 0xc], 4
je 0x410fce
mov esi, dword [edi + 8]
test esi, esi
jne 0x410fe0
mov eax, dword [edi + 0xc]
cmp eax, 5
jge 0x47a42e
push 0x4c2220
mov ecx, edi
mov dword [edi + 0xc], 1
mov dword [edi], 0
call fcn.00411720
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
inc esi
mov dword [esp + 0x24], esi
cmp esi, 1
jne 0x41076a
mov dword [esp + 0x6c], edi
cmp byte [0x4c20fc], 0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
add al, 0x8b
add al, 0x88
mov eax, dword [eax]
mov dword [esp + 0x30], eax
jne 0x47a904
cmp dword [0x4c20f0], 0
je 0x4103ff
cmp byte [0x4c20f9], 0
jne 0x47a5c1
mov esi, dword [0x4c20f4]
cmp dword [esi], 0
je 0x4103ff
mov ecx, dword [0x4c21f0]
mov byte [esp + 0x1f], 0
test cl, 1
je 0x47a5d2
mov dword [0x4c2210], 0
mov dword [0x4c220c], 0
mov dword [esp + 0x40], 0x4c21f4
mov dword [esp + 0x68], 0x4c21f4
mov edx, dword [esi]
mov eax, dword [eax + 4]
mov ecx, dword [edx + 4]
mov dword [esp + 0x38], edx
mov dword [esp + 0x60], eax
test eax, eax
je 0x47a5fb
test ecx, ecx
je 0x47a603
cmp eax, ecx
jb 0x410313
mov ecx, dword [edx]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x3c], eax
mov edx, dword [edx]
test eax, eax
je 0x410144
lea esp, [esp]
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x410148
add edx, 2
add ecx, 2
dec dword [esp + 0x3c]
jne 0x410130
xor eax, eax
jmp 0x410154
movzx eax, word [edx]
cmp ax, word [ecx]
sbb eax, eax
and eax, 0xfffffffe
inc eax
test eax, eax
js 0x4101db
jle 0x40fec8
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x38]
mov ecx, dword [edx + 0x1c]
test ecx, ecx
je 0x40fecd
mov edx, dword [ecx + 4]
cmp edx, eax
ja 0x4107c5
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x48], edx
mov ebx, dword [ebx]
mov dword [esp + 0x3c], ebx
mov ebx, dword [ecx]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x34]
test edx, edx
je 0x4101ce
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x3c]
mov ax, word [eax]
cmp ax, word [ebx]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x44]
jne 0x410270
add dword [esp + 0x3c], 2
add eax, 2
dec dword [esp + 0x48]
mov dword [esp + 0x44], eax
jne 0x4101a0
mov eax, dword [esp + 0x60]
cmp edx, eax
jb 0x41027c
jmp 0x410297
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x38]
mov ecx, dword [edx + 0x18]
test ecx, ecx
je 0x40fecd
mov edx, dword [ecx + 4]
cmp eax, edx
ja 0x410804
mov ebx, dword [esp + 0x30]
mov edx, dword [ecx]
mov ebx, dword [ebx]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x410526
mov eax, dword [esp + 0x44]
lea esp, [esp]
mov ax, word [eax]
cmp ax, word [edx]
mov eax, dword [esp + 0x44]
je 0x41050e
mov ax, word [eax]
cmp ax, word [edx]
jae 0x410253
mov eax, dword [ecx + 0x1c]
mov edx, dword [esp + 0x38]
mov dword [edx + 0x18], eax
mov eax, dword [esi]
mov dword [ecx + 0x1c], eax
mov dword [esi], ecx
cmp dword [ecx + 0x18], 0
je 0x40fecd
mov eax, dword [esi]
mov ecx, dword [esp + 0x40]
mov dword [ecx + 0x18], eax
mov eax, dword [esi]
mov dword [esp + 0x40], eax
mov eax, dword [eax + 0x18]
mov dword [esi], eax
mov eax, dword [esp + 0x30]
jmp 0x4100f4
mov edx, dword [esp + 0x3c]
mov ax, word [eax]
cmp ax, word [edx]
jae 0x410297
mov eax, dword [ecx + 0x18]
mov edx, dword [esp + 0x38]
mov dword [edx + 0x1c], eax
mov eax, dword [esi]
mov dword [ecx + 0x18], eax
mov dword [esi], ecx
cmp dword [ecx + 0x1c], 0
je 0x40fecd
mov eax, dword [esi]
mov ecx, dword [esp + 0x68]
mov dword [ecx + 0x1c], eax
mov eax, dword [esi]
mov dword [esp + 0x68], eax
mov eax, dword [eax + 0x1c]
mov dword [esi], eax
mov eax, dword [esp + 0x30]
jmp 0x4100f4
cmp eax, 6
ja case.0x4102b9.3
jmp dword [eax*4 + 0x411688]
test cl, cl
jne 0x41083b
push 8
call fcn.0041f4ea
add esp, 4
test eax, eax
je 0x41157d
mov dword [eax], esi
mov dword [eax + 4], ebx
mov ebx, eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x58], ebx
inc dword [esp + 0x54]
cmp esi, 7
je 0x4110b8
cmp esi, 8
je 0x4110b8
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x10], eax
jmp 0x40ff38
mov eax, dword [esp + 0x30]
mov edx, dword [edx]
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
test ecx, ecx
je 0x410144
jmp 0x410330
mov ax, word [eax]
cmp ax, word [edx]
mov eax, dword [esp + 0x3c]
je 0x410fb6
movzx eax, word [eax]
cmp ax, word [edx]
jmp 0x41014e
mov esi, dword [esp + 0x24]
mov dword [esp + 0x18], 0x16
test esi, esi
jne 0x410847
cmp edi, 0x4c2220
je 0x4103a5
cmp dword [edi + 0xc], 4
je 0x4107cc
mov esi, dword [edi + 8]
test esi, esi
jne 0x4107de
mov eax, dword [edi + 0xc]
cmp eax, 5
jge 0x47a18a
push 0x4c2220
mov ecx, edi
mov dword [edi + 0xc], 1
mov dword [edi], 0
call fcn.00411720
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0xc]
inc esi
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
mov dword [esp + 0x24], esi
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
cmp esi, 1
jne 0x410893
mov esi, edi
mov ecx, dword [esi + 8]
mov eax, dword [eax]
mov dword [esp + 0x48], eax
test ecx, ecx
jne 0x47a340
mov eax, dword [esi + 0xc]
cmp eax, 5
jge 0x47a352
mov eax, dword [esp + 0x48]
mov dword [esi + 0xc], 1
mov dword [esi], eax
mov esi, dword [ebp + 0xc]
inc dword [esi]
jmp 0x40ff38
mov eax, dword [esp + 0x30]
mov esi, dword [0x4c20e0]
test esi, esi
je 0x47a904
mov ecx, dword [0x4c21f0]
mov byte [esp + 0x1f], 0
test cl, 1
je 0x47a610
mov dword [0x4c2210], 0
mov dword [0x4c220c], 0
add byte [eax], al
add bh, al
add eax, 0x4c220c
add byte [eax], al
add byte [eax], al
mov dword [esp + 0x3c], 0x4c21f4
mov dword [esp + 0x68], 0x4c21f4
mov edx, dword [eax + 4]
mov ecx, dword [esi + 4]
mov dword [esp + 0x44], edx
test edx, edx
je 0x47a63f
test ecx, ecx
je 0x47a647
cmp edx, ecx
jb 0x4105fd
mov ecx, dword [esi]
mov eax, edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x48], eax
mov edx, dword [edx]
test eax, eax
je 0x410498
lea esp, [esp]
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x41064d
add edx, 2
add ecx, 2
dec dword [esp + 0x48]
jne 0x410480
xor eax, eax
mov edx, dword [esp + 0x44]
test eax, eax
js 0x41065e
jg 0x41053c
mov byte [esp + 0x1f], 1
cmp byte [esp + 0x1f], 0
mov eax, dword [esi + 0x18]
mov ecx, dword [esp + 0x68]
mov dword [ecx + 0x1c], eax
mov eax, dword [0x4c20e0]
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax + 0x1c]
mov dword [ecx + 0x18], eax
mov ecx, dword [0x4c20e0]
mov eax, dword [0x4c2210]
mov dword [ecx + 0x18], eax
mov ecx, dword [0x4c20e0]
mov eax, dword [0x4c220c]
mov dword [ecx + 0x1c], eax
je 0x47a904
mov eax, dword [0x4c20e0]
test eax, eax
je 0x47a904
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x40ff19
jmp 0x47a904
add eax, 2
add edx, 2
dec dword [esp + 0x3c]
mov dword [esp + 0x44], eax
jne 0x410220
mov eax, dword [esp + 0x60]
cmp eax, dword [ecx + 4]
jae 0x410253
jmp 0x410238
mov eax, dword [ebx + 4]
jmp 0x40ffae
lea eax, [esi + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [eax]
test eax, eax
je 0x4104b1
mov ecx, dword [eax + 4]
mov dword [esp + 0x40], ecx
cmp ecx, edx
jbe 0x41055e
mov ecx, edx
mov dword [esp + 0x40], edx
mov edx, dword [eax]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx]
test eax, eax
je 0x41058a
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x410592
add edx, 2
add ecx, 2
dec dword [esp + 0x48]
jne 0x410572
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x44]
jb 0x410594
jmp 0x4105b7
jae 0x4105b7
mov ecx, dword [esp + 0x38]
mov esi, dword [ecx]
mov eax, dword [esi + 0x18]
mov dword [ecx], eax
mov eax, dword [0x4c20e0]
mov dword [esi + 0x18], eax
mov dword [0x4c20e0], esi
cmp dword [esi + 0x1c], 0
je 0x4104b1
mov ecx, dword [esp + 0x68]
mov dword [ecx + 0x1c], esi
mov eax, dword [0x4c20e0]
mov dword [esp + 0x68], eax
mov esi, dword [eax + 0x1c]
mov eax, dword [esp + 0x30]
mov dword [0x4c20e0], esi
jmp 0x410445
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.00411d10
test eax, eax
js 0x4115a1
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x34], ebx
jmp 0x40ffa0
mov eax, dword [esi]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x38], eax
mov eax, dword [ebx]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x40], eax
test ecx, ecx
je 0x410822
lea esp, [esp]
mov ebx, dword [esp + 0x38]
mov ax, word [eax]
cmp ax, word [ebx]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
je 0x41080f
movzx eax, word [eax]
mov ecx, dword [esp + 0x38]
cmp ax, word [ecx]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x41049e
movzx eax, word [edx]
cmp ax, word [ecx]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x41049a
mov ecx, dword [esi + 0x18]
lea eax, [esi + 0x18]
mov dword [esp + 0x44], eax
test ecx, ecx
je 0x4104b1
mov eax, dword [ecx + 4]
cmp edx, eax
ja 0x411183
mov eax, dword [ecx]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x38], eax
mov eax, dword [ebx]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x48], edx
mov dword [esp + 0x40], eax
test edx, edx
je 0x4106c6
jmp 0x4106a0
mov ebx, dword [esp + 0x38]
mov ax, word [eax]
cmp ax, word [ebx]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
jne 0x4106cd
add dword [esp + 0x38], 2
add eax, 2
dec dword [esp + 0x48]
mov dword [esp + 0x40], eax
jne 0x4106a0
cmp edx, dword [ecx + 4]
jb 0x4106d9
jmp 0x4106fc
mov edx, dword [esp + 0x38]
mov ax, word [eax]
cmp ax, word [edx]
jae 0x4106fc
mov esi, ecx
mov ecx, dword [esp + 0x44]
mov eax, dword [esi + 0x1c]
mov dword [ecx], eax
mov eax, dword [0x4c20e0]
mov dword [esi + 0x1c], eax
mov dword [0x4c20e0], esi
cmp dword [esi + 0x18], 0
je 0x4104b1
mov ecx, dword [esp + 0x3c]
mov dword [ecx + 0x18], esi
mov eax, dword [0x4c20e0]
mov dword [esp + 0x3c], eax
mov esi, dword [eax + 0x18]
mov eax, dword [esp + 0x30]
mov dword [0x4c20e0], esi
jmp 0x410445
cmp byte [esp + 0x2d], 0
jne 0x410da4
push 0x18
call fcn.0041f4ea
mov esi, eax
add esp, 4
test esi, esi
je 0x41156a
push 0x4c2220
mov ecx, esi
mov dword [esi + 8], 0
call fcn.00411720
mov eax, dword [esp + 0x10]
mov dword [esi + 0x10], eax
mov eax, esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], eax
jmp 0x410060
cmp byte [esp + 0x2d], 0
jne 0x411571
mov dword [esp + 0x6c], eax
jmp 0x410072
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + 8]
mov esi, dword [ebx + 0x10]
mov dword [esp + 0x48], ecx
test ecx, ecx
jne 0x4111aa
mov eax, dword [ebx + 0xc]
cmp eax, 5
jge 0x411321
push ebx
mov dword [ebx + 0xc], 1
mov dword [ebx], 0
call fcn.0041f55e
add esp, 4
mov ebx, esi
test esi, esi
jne 0x410782
mov ebx, dword [esp + 0x34]
jmp 0x40ffe1
mov edx, eax
jmp 0x410180
cmp dword [0x4c222c], 4
jne 0x410371
jmp 0x47a15d
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
inc esi
or al, 0x83
cmp byte [eax], al
je 0x47a170
push esi
call fcn.0041f55e
add esp, 4
mov dword [edi + 8], 0
jmp 0x41037c
mov eax, edx
mov dword [esp + 0x60], edx
jmp 0x4101f9
add dword [esp + 0x38], 2
add eax, 2
mov dword [esp + 0x40], eax
dec ecx
jne 0x410620
xor eax, eax
jmp 0x41049e
lea eax, [ecx + 1]
mov ecx, dword [ebp + 0xc]
mov esi, 0xd
mov dword [ecx], eax
jmp 0x40ff98
mov dword [ebx], esi
mov byte [esp + 0x5d], 0
jmp 0x4102e9
cmp byte [esp + 0x2d], 0
jne 0x410f37
push 0x18
call fcn.0041f4ea
mov esi, eax
add esp, 4
test esi, esi
je 0x41155b
push 0x4c2220
mov ecx, esi
mov dword [esi + 8], 0
call fcn.00411720
mov eax, dword [esp + 0x10]
mov edx, esi
mov dword [esi + 0x10], eax
mov esi, dword [esp + 0x24]
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], edx
jmp 0x4103a9
cmp byte [esp + 0x2d], 0
jne 0x411562
mov esi, edx
jmp 0x4103c7
test cl, cl
je 0x410df5
mov eax, dword [ebx + 4]
cmp dword [eax], 0x12
je 0x410935
test cl, cl
jne 0x410f2f
mov eax, ebx
cmp dword [eax], 0x14
je 0x4115aa
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.00411d10
test eax, eax
js 0x4115a1
mov ebx, dword [esp + 0x58]
mov cl, byte [esp + 0x5d]
mov dword [esp + 0x34], ebx
jmp case.0x4102b9.2
test ecx, ecx
je 0x410911
mov eax, dword [esi + ecx*4 - 4]
movzx eax, word [eax + 8]
cmp ax, 0x48
je 0x479d73
cmp ax, 0x4f
je 0x479d73
lea eax, [ecx + 1]
mov ecx, dword [ebp + 0xc]
mov esi, 0x12
mov dword [ecx], eax
jmp 0x40ff98
lea eax, [ecx + 1]
mov ecx, dword [ebp + 0xc]
mov esi, 0x13
mov dword [ecx], eax
jmp 0x40ff98
test cl, cl
je 0x410953
mov esi, dword [ebx + 4]
push ebx
call fcn.0041f55e
mov ebx, esi
mov esi, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x34], ebx
mov dword [esp + 0x58], ebx
cmp byte [esp + 0x5c], 0
je 0x47a654
mov byte [esp + 0x5d], 1
dec dword [esp + 0x54]
jmp case.0x4102b9.3
lea eax, [ecx + 1]
mov ecx, dword [ebp + 0xc]
mov esi, 1
mov dword [ecx], eax
jmp 0x40ff98
cmp dword [esp + 0x24], 0
mov dword [esp + 0x18], 0x16
je 0x411218
cmp byte [esp + 0x2d], 0
jne 0x41129f
push 0x18
call fcn.0041f4ea
mov esi, eax
add esp, 4
test esi, esi
je 0x41152d
add al, 0x85
test byte [edi], 0x84
jge 0x4109b9
add byte [eax], al
push 0x4c2220
mov ecx, esi
mov dword [esi + 8], 0
call fcn.00411720
or byte [eax], al
add byte [eax], al
add al, ch
pop ebp
or eax, 0x448b0000
and al, 0x10
mov eax, dword [esp + 0x10]
mov dword [esi + 0x10], eax
mov eax, esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov edx, dword [eax + 4]
mov ecx, dword [esi]
inc dword [esp + 0x24]
mov eax, dword [edx + ecx*4 + 4]
cmp word [eax + 8], 0x47
jne 0x4799a0
cmp dword [esp + 0x24], 1
je 0x411229
cmp byte [esp + 0x2d], 0
mov eax, dword [esp + 0x10]
jne 0x411534
mov dword [esp + 0x30], eax
mov dword [esp + 0x70], 0x49dc50
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov eax, dword [edx + ecx*4]
mov ecx, dword [eax]
movsx eax, word [eax + 0xa]
mov dword [esp + 0x40], eax
mov eax, dword [0x4c2214]
mov dword [esp + 0x60], ecx
test al, 1
je 0x4799bc
cmp ecx, dword [0x4c2218]
je 0x4799fc
mov eax, dword [ebp + 8]
inc dword [esi]
mov ecx, dword [esi]
mov edx, dword [eax + 4]
mov eax, dword [edx + ecx*4]
cmp word [eax + 8], 0x47
jne 0x47a761
lea eax, [ecx + 1]
mov dword [esi], eax
mov dword [esp + 0x48], eax
xor esi, esi
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov eax, dword [edx + ecx*4]
movsx eax, word [eax + 8]
sub eax, 0x47
je 0x410f96
dec eax
je 0x410aaf
sub eax, 0x37
je 0x41158c
lea eax, [ecx + 1]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x410a84
test esi, esi
jne 0x410f88
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x6c], esi
mov ecx, dword [edx]
mov dword [esp + 0x38], ecx
lea eax, [ecx + 1]
mov dword [edx], eax
cmp dword [esp + 0x48], ecx
jae 0x410bde
jmp 0x410ae0
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x98], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 1
cmp dword [esp + 0x78], eax
jne 0x410b46
add eax, eax
cmp eax, 8
jae 0x410b17
mov eax, 8
xor ecx, ecx
mov dword [esp + 0x7c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0041f4ea
mov esi, eax
mov eax, dword [esp + 0x78]
add esp, 4
test eax, eax
jne 0x479a25
mov dword [esp + 0x74], esi
push 0x10
call fcn.0041f4ea
mov esi, eax
add esp, 4
test esi, esi
je 0x41153c
lea eax, [esp + 0x98]
push eax
mov ecx, esi
mov dword [esi + 8], 0
call fcn.00411720
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
push dword [esp + 0x38]
mov dword [eax + ecx*4], esi
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
inc ecx
mov dword [esp + 0x7c], ecx
push dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x88]
push eax
push dword [ebp + 8]
call fcn.0040fe30
test eax, eax
js 0x47a740
mov esi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x38]
inc esi
mov dword [esp + 0x6c], esi
cmp ecx, edx
jne 0x4111d0
mov dword [esp + 0xa4], 1
mov dword [esp + 0x98], 0
mov ecx, dword [esp + 0x14]
push dword [esp + 0x60]
add ecx, 0x49c
call fcn.00414800
cmp esi, dword [eax + 0x18]
jl 0x411596
mov ecx, dword [esp + 0x14]
push dword [esp + 0x60]
lea ecx, [ecx + 0x49c]
call fcn.00414800
cmp esi, dword [eax + 0x1c]
jg 0x411596
mov esi, dword [esp + 0x30]
mov ecx, dword [esi + 8]
test ecx, ecx
jne 0x479a50
mov eax, dword [esi + 0xc]
cmp eax, 5
jge 0x479a62
mov edx, dword [esp + 0x14]
mov dword [esi + 0xc], 1
mov dword [esi], 1
mov eax, dword [edx]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edx + 8]
add ecx, edx
cmp byte [ecx + 0xd], 0
jne 0x411543
mov dword [eax + 0x14], 0
cmp byte [ecx + 0xd], 0
mov eax, dword [ecx + 8]
jne 0x41154b
mov byte [eax + 0x18], 0
mov eax, dword [edx]
mov esi, dword [eax + 4]
add esi, edx
mov dword [esp + 0x48], esi
mov dword [esp + 0x48], esi
cmp byte [esi + 0xd], 0
jne 0x479b11
mov esi, dword [esi + 8]
mov ecx, dword [esi + 0x28]
test ecx, ecx
jne 0x479b1c
mov eax, dword [esi + 0x2c]
cmp eax, 5
jge 0x479b32
mov eax, dword [esp + 0x48]
mov dword [esi + 0x2c], 1
mov dword [esi + 0x20], 0
cmp byte [eax + 0xd], 0
mov eax, dword [eax + 8]
jne 0x411553
push dword [esp + 0x60]
lea ecx, [edx + 0x49c]
mov byte [eax + 0x30], 0
call fcn.00414800
mov edx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov esi, dword [eax + 0xc]
push dword [esp + 0x30]
lea eax, [esp + 0x74]
push eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov ecx, dword [ecx + eax]
add ecx, edx
add ecx, dword [esp + 0x1c]
call esi
test eax, eax
js 0x47a77b
xor esi, esi
mov dword [esp + 0x70], 0x49dc50
cmp dword [esp + 0x78], esi
jbe 0x410d42
jmp 0x410d10
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + esi*4]
mov dword [esp + 0x48], ecx
test ecx, ecx
je 0x410d34
call fcn.0040e070
push dword [esp + 0x48]
call fcn.0041f55e
add byte [eax], al
mov eax, dword [esp + 0x78]
add esp, 4
mov dword [eax + esi*4], 0
inc esi
cmp esi, dword [esp + 0x78]
jb 0x410d10
push dword [esp + 0x74]
mov dword [esp + 0x7c], 0
call fcn.0041f55e
add esp, 4
mov eax, dword [esp + 0x14]
cmp dword [eax + 0xfc], 1
je 0x47a7ef
mov esi, dword [ebp + 0xc]
jmp 0x40ff38
mov eax, dword [esp + 0x18]
cmp eax, 0x16
jne 0x411018
lea eax, [ecx + 1]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x18], 0xb
mov esi, dword [esp + 0x18]
mov dword [ecx], eax
jmp 0x40ffa0
lea eax, [ecx + 1]
mov ecx, dword [ebp + 0xc]
xor esi, esi
mov dword [ecx], eax
jmp 0x40ff98
mov eax, dword [esp + 0x10]
cmp eax, 0x4c2220
je 0x410deb
cmp dword [eax + 0xc], 4
je 0x411461
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x411473
mov eax, dword [eax + 0xc]
cmp eax, 5
jge 0x47a4f0
mov ecx, dword [esp + 0x10]
push 0x4c2220
mov dword [ecx + 0xc], 1
mov dword [ecx], 0
call fcn.00411720
mov byte [esp + 0x2d], 0
jmp 0x41005c
mov eax, ebx
jmp 0x4108b0
mov esi, dword [esp + 0x24]
mov dword [esp + 0x18], 0x16
test esi, esi
jne 0x411064
cmp edi, 0x4c2220
je 0x410e52
dec esp
add byte [edx + edi - 0x7d], dh
jg 0x410e27
cmp dword [edi + 0xc], 4
je 0x4114e8
add al, 0xf
test dh, al
push es
add byte [eax], al
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x4114fa
mov eax, dword [edi + 0xc]
cmp eax, 5
jge 0x47978d
push 0x4c2220
mov ecx, edi
mov dword [edi + 0xc], 1
mov dword [edi], 0
call fcn.00411720
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0xc]
inc esi
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
mov dword [esp + 0x24], esi
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
cmp esi, 1
jne 0x4110a6
mov esi, edi
cmp dword [esi + 0xc], 4
mov eax, dword [eax]
mov ecx, dword [esi + 8]
mov dword [esp + 0x48], eax
je 0x47984f
test ecx, ecx
jne 0x47985a
mov eax, dword [esi + 0xc]
cmp eax, 5
jge 0x47986c
push 0x10
mov dword [esi], 0
mov dword [esi + 0xc], 4
call fcn.0041f4ea
mov edx, eax
add esp, 4
test edx, edx
je 0x411526
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
mov eax, dword [eax + 0xc]
mov dword [edx + 0xc], eax
inc dword [eax]
mov dword [esi + 8], edx
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0x14]
inc esp
and al, 0x14
inc dword [esi]
cmp byte [eax + 0x101], 0
jne 0x47991b
cmp byte [eax + 0x102], 0
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
je 0x40ff3e
jmp 0x479933
mov eax, dword [esp + 0x18]
cmp eax, 0x16
jne 0x41118a
mov dword [esp + 0x18], 0xc
mov esi, dword [esp + 0x18]
lea eax, [ecx + 1]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x40ffa0
mov eax, dword [ebx + 4]
jmp 0x4108c3
mov eax, dword [esp + 0x10]
cmp eax, 0x4c2220
je 0x410f7e
cmp dword [eax + 0xc], 4
je 0x47a239
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x47a259
mov eax, dword [eax + 0xc]
cmp eax, 5
jge 0x47a26f
mov ecx, dword [esp + 0x10]
push 0x4c2220
mov dword [ecx + 0xc], 1
mov dword [ecx], 0
call fcn.00411720
mov byte [esp + 0x2d], 0
jmp 0x4103a5
lea eax, [ecx + 1]
mov ecx, dword [ebp + 0xc]
dec esi
mov dword [ecx], eax
jmp 0x410a84
lea eax, [ecx + 1]
mov ecx, dword [ebp + 0xc]
inc esi
mov dword [ecx], eax
jmp 0x410a84
lea eax, [ecx + 1]
mov ecx, dword [ebp + 0xc]
mov esi, 0xe
mov dword [ecx], eax
jmp 0x40ff98
add eax, 2
add edx, 2
mov dword [esp + 0x3c], eax
dec ecx
jne 0x410330
xor eax, eax
jmp 0x410154
cmp dword [0x4c222c], 4
jne 0x410028
jmp 0x47a401
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x47a414
push esi
call fcn.0041f55e
add esp, 4
mov dword [edi + 8], 0
jmp 0x410033
lea eax, [ecx + 1]
mov ecx, dword [ebp + 0xc]
mov esi, 9
mov dword [ecx], eax
jmp 0x40ff98
cmp eax, 0x13
je 0x410d7c
lea eax, [ecx + 1]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x18], 0x11
mov esi, dword [esp + 0x18]
mov dword [ecx], eax
jmp 0x40ffa0
dec eax
cmp eax, 0x29
ja case.0x41104b.4
movzx eax, byte [eax + 0x4116c4]
jmp dword [eax*4 + 0x4116a4]
lea eax, [ecx + 1]
mov ecx, dword [ebp + 0xc]
mov esi, 7
mov dword [ecx], eax
invalid
invalid