Function at 0x411d10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x50
mov eax, dword [0x44b00c]
xor eax, esp
mov dword [esp + 0x4c], eax
push esi
mov esi, ecx
push edi
mov edi, dword [0x4f3cf4]
mov dword [esp + 0x24], esi
mov ecx, dword [esi + 0x1c]
add edi, ecx
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
cmp eax, 0xbe
ja case.0x411d68.14
mov edx, dword [esp + 0xc]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x38], 0x11b
mov dword [esp + 0x30], edx
movzx eax, byte [eax + 0x413ec8]
jmp dword [eax*4 + 0x413cc0]
movsx eax, word [edi + 3]
movsx edx, word [edi + 1]
shl eax, 6
add eax, dword [esi + 4]
mov dword [esp + 0x14], eax
mov al, byte [edi + 5]
shl edx, 6
add edx, dword [esi]
xor ecx, ecx
mov byte [esp + 0xb], al
mov eax, 0x492054
cmp byte [eax], 0
je 0x411da9
add eax, 0x18
inc ecx
cmp eax, 0x492144
jl 0x411d94
jmp case.default.0x412247
lea eax, [ecx + ecx*2]
lea eax, [eax*8 + 0x492040]
mov dword [esp + 0x2c], eax
test eax, eax
je case.default.0x412247
mov ecx, dword [esp + 0x14]
sar ecx, 6
mov dword [eax + 4], ecx
mov cl, byte [esp + 0xb]
mov byte [eax + 0x14], cl
sar edx, 6
movzx ecx, cl
mov dword [eax], edx
mov byte [eax + 0x15], 0
mov dword [eax + 0x10], 0
sub ecx, 1
je 0x411e18
sub ecx, 1
je 0x411e05
sub ecx, 1
jne case.default.0x412247
mov dword [eax + 0xc], 0x320
mov dword [eax + 8], ecx
jmp case.default.0x412247
mov dword [eax + 8], 0x28a
mov dword [eax + 0xc], 0x28a
jmp case.default.0x412247
push 0
mov edx, 0x5000
mov cl, 0x12
call fcn.004033c0
mov eax, dword [esp + 0x30]
add esp, 4
mov dword [eax + 8], 0x190
mov dword [eax + 0xc], 0x190
jmp case.default.0x412247
imul ecx, dword [0x4f3e2c], 0x15a4e35
inc ecx
mov eax, ecx
shr eax, 0x10
and eax, 0x7fff
cdq
idiv dword [esp + 0x38]
cmp dword [esi], 0x4fe0
jle 0x411e6b
mov eax, 0x27e
sub eax, edx
jmp 0x411e71
lea eax, [edx + 0x27e]
shl eax, 5
mov edx, esi
mov dword [edx], eax
imul eax, ecx, 0x15a4e35
mov ecx, 0x4f
inc eax
mov dword [0x4f3e2c], eax
shr eax, 0x10
and eax, 0x7fff
cdq
idiv ecx
add edx, 0x28
shl edx, 6
mov dword [esi + 4], edx
jmp case.default.0x412247
movzx ecx, byte [esi + 0x7e]
movsx eax, word [edi + 1]
shl eax, 6
imul eax, dword [ecx*4 + 0x446bb0]
sar eax, 8
add dword [esi], eax
movsx eax, word [edi + 1]
shl eax, 6
imul eax, dword [ecx*4 + 0x446ab0]
sar eax, 8
add dword [esi + 4], eax
movzx eax, byte [edi]
movzx ecx, byte [eax + 0x4470c0]
add ecx, dword [esi + 0x1c]
mov dword [esi + 0x1c], ecx
mov edi, dword [0x4f3cf4]
add edi, ecx
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
cmp eax, 0xbe
jbe 0x411d61
pop edi
pop esi
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0042e689
mov esp, ebp
pop ebp
ret
mov cl, byte [edi + 1]
movzx eax, cl
cmp eax, 5
ja case.default.0x412247
jmp dword [eax*4 + 0x413f88]
call fcn.00410160
jmp case.default.0x412247
movzx eax, word [edi + 1]
shl ax, 6
mov word [esi + 0x74], ax
movzx eax, word [edi + 3]
shl ax, 6
mov word [esi + 0x76], ax
jmp case.default.0x412247
mov al, byte [esi + 0xbb]
mov cl, byte [esi + 0x88]
mov byte [0x4c9f45], al
mov al, byte [esi + 0xb8]
mov byte [0x4c9f44], al
mov eax, dword [esi + 0xa0]
mov dword [0x4c9f34], eax
mov eax, dword [esi + 0xa4]
mov dword [0x4c9f38], eax
mov al, byte [esi + 0xbe]
mov byte [0x4c9f46], al
mov eax, dword [esi + 0xa8]
mov dword [0x4c9f3c], eax
mov eax, dword [esi + 0xac]
mov dword [0x4c9f30], esi
mov dword [0x4c9f40], eax
call fcn.0041c340
test al, al
je case.default.0x412247
inc byte [esi + 0x88]
jmp case.default.0x412247
mov dl, byte [edi + 1]
mov ecx, esi
call fcn.0041c4b0
jmp case.default.0x412247
mov dl, byte [edi + 1]
mov ecx, esi
call fcn.0041c500
cmp byte [edi + 1], 0xff
jne 0x411fd6
mov byte [esi + 0x88], 0
jmp case.default.0x412247
dec byte [esi + 0x88]
jmp case.default.0x412247
mov dl, byte [edi + 1]
mov ecx, esi
call fcn.0041c580
jmp case.default.0x412247
mov al, byte [edi + 1]
mov cl, byte [edi + 2]
mov edi, 0x4c9fa4
mov byte [esp + 0xb], al
mov byte [esp + 0xa], cl
mov dword [esp + 0x1c], edi
cmp dword [edi - 0x54], esi
jne 0x41210a
cmp byte [edi + 0xc], al
je 0x41201d
cmp al, 0xff
jne 0x41210a
add byte [edi + 8], cl
movzx ecx, byte [edi + 8]
mov eax, dword [edi - 0x28]
mov esi, dword [esp + 0x1c]
sar eax, 6
mov edx, dword [ecx*4 + 0x446bb0]
mov edi, edx
mov ecx, dword [ecx*4 + 0x446ab0]
imul edi, eax
imul edx, edx, 0x320
sar edi, 8
mov dword [esi - 0x40], edi
mov esi, ecx
imul esi, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x1c]
sar edx, 8
sar esi, 8
mov dword [eax - 0x3c], esi
mov eax, esi
neg eax
imul ecx, ecx, 0x320
mov dword [edi - 0x30], eax
mov edi, dword [esp + 0x18]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
sar ecx, 8
mov dword [esp + 0x14], ecx
mov dword [eax - 0x38], edx
mov edx, eax
mov dword [eax - 0x2c], edi
mov dword [edx - 0x34], ecx
mov ecx, eax
mov eax, dword [esp + 0x34]
mov edx, dword [ecx - 0x50]
sar edx, 6
add eax, edx
sub edx, dword [esp + 0x34]
add edx, dword [esp + 0x18]
add eax, edi
mov dword [ecx - 0x18], eax
mov ecx, dword [ecx - 0x4c]
mov dword [esp + 0xc], eax
sar ecx, 6
lea eax, [ecx + esi]
sub ecx, dword [esp + 0x18]
add edi, eax
add ecx, esi
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x1c]
mov dword [eax - 0x14], edi
mov dword [eax + 4], ecx
mov dword [eax], edx
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x2c]
mov dword [esi - 0x10], eax
mov eax, dword [esp + 0x14]
add eax, edi
mov edi, esi
mov esi, dword [esp + 0x24]
mov dword [edi - 0xc], eax
mov eax, dword [esp + 0x2c]
add eax, edx
mov dword [edi - 8], eax
mov eax, dword [esp + 0x14]
add eax, ecx
mov cl, byte [esp + 0xa]
mov dword [edi - 4], eax
mov al, byte [esp + 0xb]
add edi, 0x64
mov dword [esp + 0x1c], edi
cmp edi, 0x4ca774
jl 0x412007
mov edx, dword [esp + 0x10]
movzx eax, byte [edx]
jmp 0x411ecf
mov ecx, dword [edi + 1]
mov dword [esi + 0x14], ecx
mov eax, dword [edi + 5]
mov dword [esi + 0x28], eax
test ecx, ecx
jne case.default.0x412247
call fcn.0040b280
jmp case.default.0x412247
movzx eax, word [esi + 0x78]
mov ecx, eax
test ax, ax
jne 0x41215b
mov ax, word [edi + 5]
inc ax
movzx ecx, ax
lea eax, [ecx - 1]
mov word [esi + 0x78], ax
test ax, ax
je case.default.0x412247
mov ecx, dword [edi + 1]
jmp 0x411ed9
lea eax, [ecx + 5]
mov dword [esi + 0x24], eax
mov ecx, dword [edi + 1]
jmp 0x411ed9
mov ecx, dword [esi + 0x24]
jmp 0x411ed9
mov eax, dword [esi + 0x14]
cmp eax, dword [edi + 5]
jbe case.default.0x412247
mov ecx, dword [edi + 1]
jmp 0x411ed9
mov eax, dword [esi + 0x14]
cmp eax, dword [edi + 5]
jae case.default.0x412247
mov ecx, dword [edi + 1]
jmp 0x411ed9
movzx eax, byte [0x4cfb14]
cmp eax, 3
ja case.0x4121bd.1
jmp dword [eax*4 + 0x413fa0]
mov ecx, dword [edi + 9]
jmp 0x411ed9
mov ecx, dword [edi + 0xd]
jmp 0x411ed9
mov ecx, dword [edi + 5]
jmp 0x411ed9
mov edx, dword [0x4ccf8c]
mov ecx, dword [0x4ccf88]
sub edx, dword [esi + 4]
sub ecx, dword [esi]
call fcn.00404530
movzx ecx, al
movzx eax, byte [esi + 0x7e]
sub ecx, eax
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp al, 4
jae case.default.0x412247
mov ecx, dword [edi + 1]
jmp 0x411ed9
mov eax, dword [esi + 0x20]
cmp eax, dword [edi + 5]
jbe case.default.0x412247
mov ecx, dword [edi + 1]
jmp 0x411ed9
mov eax, dword [esi + 0x20]
cmp eax, dword [edi + 5]
jae case.default.0x412247
mov ecx, dword [edi + 1]
jmp 0x411ed9
movzx eax, byte [edi + 5]
cmp eax, 3
ja case.default.0x412247
jmp dword [eax*4 + 0x413fb0]
mov eax, dword [edi + 1]
mov dword [esi + 0x6c], eax
mov eax, dword [edi + 6]
mov dword [esi + 0x70], eax
jmp case.default.0x412247
mov eax, dword [edi + 1]
mov dword [esi + 0x54], eax
mov eax, dword [edi + 6]
mov dword [esi + 0x58], eax
jmp case.default.0x412247
mov eax, dword [edi + 1]
mov dword [esi + 0x5c], eax
mov eax, dword [edi + 6]
mov dword [esi + 0x60], eax
jmp case.default.0x412247
mov eax, dword [edi + 1]
mov dword [esi + 0x64], eax
mov eax, dword [edi + 6]
mov dword [esi + 0x68], eax
mov dword [esi + 0x30], 0
jmp case.default.0x412247
movzx eax, byte [edi + 1]
cmp eax, 3
ja case.default.0x412247
jmp dword [eax*4 + 0x413fc0]
mov dword [esi + 0x6c], 0
jmp case.default.0x412247
mov dword [esi + 0x54], 0
jmp case.default.0x412247
mov dword [esi + 0x5c], 0
jmp case.default.0x412247
mov dword [esi + 0x64], 0
jmp case.default.0x412247
movzx eax, word [esi + 0x7a]
mov ecx, eax
test ax, ax
jne 0x4122f1
mov ax, word [edi + 1]
inc ax
movzx ecx, ax
lea eax, [ecx - 1]
mov word [esi + 0x7a], ax
test ax, ax
jne case.0x411d68.14
jmp case.default.0x412247
mov cl, byte [edi + 1]
mov byte [esp + 0xb], cl
test cl, cl
jne 0x41231b
call fcn.004299a0
jmp case.default.0x412247
xor eax, eax
mov dword [esp + 0xc], 0
cmp ax, word [0x4f1c78]
jae 0x4123cd
mov esi, dword [esp + 0xc]
mov di, word [0x4f1c78]
lea ecx, [ecx]
movzx eax, si
movzx eax, word [eax*2 + 0x4f1c90]
lea eax, [eax + eax*2]
shl eax, 4
add eax, 0x4d4720
mov dword [esp + 0x18], eax
cmp byte [eax + 0x29], 0xf0
je 0x4123bb
xor edx, edx
movzx ecx, cl
mov word [eax + 0x2a], dx
mov byte [eax + 0x21], dl
imul eax, dword [0x4f3e2c], 0x15a4e35
inc eax
mov dword [0x4f3e2c], eax
shr eax, 0x10
and eax, 0x7fff
cdq
idiv ecx
mov eax, dword [esp + 0x18]
test edx, edx
jne 0x4123b3
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push 1
call fcn.0041add0
mov eax, dword [esp + 0x1c]
add esp, 4
mov di, word [0x4f1c78]
mov byte [eax + 0x2c], 0x80
mov byte [eax + 0x25], 0x25
jmp 0x4123b7
mov byte [eax + 0x29], 0xf0
mov cl, byte [esp + 0xb]
inc esi
cmp si, di
jb 0x412340
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
push ecx
mov edx, 0x4f1c78
mov ecx, 0x4f1c90
call fcn.0042a780
xor eax, eax
mov dword [esp + 0x10], 0
add esp, 4
cmp ax, word [0x4d4714]
jae 0x412489
mov edi, dword [esp + 0xc]
mov si, word [0x4d4714]
movzx eax, di
movzx eax, word [eax*2 + 0x4f09b0]
lea eax, [eax + eax*2]
shl eax, 4
add eax, 0x4d4720
mov dword [esp + 0x18], eax
cmp byte [eax + 0x29], 0xf0
je 0x41247b
xor ecx, ecx
mov word [eax + 0x2a], cx
mov byte [eax + 0x21], cl
imul eax, dword [0x4f3e2c], 0x15a4e35
movzx ecx, byte [esp + 0xb]
inc eax
mov dword [0x4f3e2c], eax
shr eax, 0x10
and eax, 0x7fff
cdq
idiv ecx
mov eax, dword [esp + 0x18]
test edx, edx
jne 0x412477
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push 1
call fcn.0041add0
mov eax, dword [esp + 0x1c]
add esp, 4
mov si, word [0x4d4714]
mov byte [eax + 0x2c], 0x80
mov byte [eax + 0x25], 0x25
jmp 0x41247b
mov byte [eax + 0x29], 0xf0
inc edi
cmp di, si
jb 0x412402
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
push ecx
mov edx, 0x4d4714
mov ecx, 0x4f09b0
call fcn.0042a780
add esp, 4
jmp case.default.0x412247
movzx eax, word [esi + 0x7a]
mov ecx, eax
test ax, ax
jne 0x4124b5
mov ax, word [edi + 2]
inc ax
movzx ecx, ax
lea eax, [ecx - 1]
mov word [esi + 0x7a], ax
test ax, ax
je case.default.0x412247
movsx edx, byte [edi + 1]
add edx, dword [esi + 0x10]
movzx ecx, byte [esi + 0x7e]
mov dword [esi + 0x10], edx
mov eax, dword [ecx*4 + 0x446bb0]
imul eax, edx
sar eax, 8
add dword [esi], eax
mov eax, dword [ecx*4 + 0x446ab0]
imul eax, edx
sar eax, 8
add dword [esi + 4], eax
pop edi
pop esi
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0042e689
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 4]
cmp eax, 0x10a0
jge 0x412551
mov eax, dword [esi]
cmp eax, 0x4580
jge 0x412520
mov ecx, 0x10
jmp 0x4125c1
cmp eax, 0x5a40
jle 0x412531
mov ecx, 0x50
jmp 0x4125c1
imul eax, dword [0x4f3e2c], 0x15a4e35
inc eax
mov dword [0x4f3e2c], eax
shr eax, 0x10
shr eax, 1
and eax, 1
shl eax, 6
add eax, 0x10
jmp 0x4125be
cmp eax, 0x2140
mov eax, dword [esi]
jle 0x41257e
cmp eax, 0x4580
jge 0x412568
mov ecx, 0xffd0
jmp 0x4125c1
xor ecx, ecx
cmp eax, 0x5a40
setle cl
dec ecx
and ecx, 0xffffffe0
add ecx, 0xb0
jmp 0x4125c1
cmp eax, 0x4580
jge 0x41258c
mov ecx, 0xfff0
jmp 0x4125c1
cmp eax, 0x5a40
jle 0x41259a
mov ecx, 0x70
jmp 0x4125c1
imul eax, dword [0x4f3e2c], 0x15a4e35
inc eax
mov dword [0x4f3e2c], eax
shr eax, 0x10
and al, 2
movzx eax, al
neg eax
sbb eax, eax
and eax, 0xff80
add eax, 0x70
movzx ecx, ax
imul eax, dword [0x4f3e2c], 0x15a4e35
inc eax
mov dword [0x4f3e2c], eax
shr eax, 0x11
and eax, 0x8000001f
jns 0x4125e0
dec eax
or eax, 0xffffffe0
inc eax
add al, cl
mov byte [esi + 0x7e], al
jmp case.default.0x412247
movzx eax, word [esi + 0x7a]
mov ecx, eax
test ax, ax
jne 0x41262c
mov di, word [edi + 1]
movzx edx, byte [esi + 0x7e]
inc di
mov word [esi + 0x7a], di
mov eax, dword [edx*4 + 0x446bb0]
imul eax, dword [esi + 0x10]
sar eax, 8
mov dword [esi + 8], eax
mov eax, dword [edx*4 + 0x446ab0]
imul eax, dword [esi + 0x10]
sar eax, 8
movzx ecx, di
mov edi, dword [esp + 0x10]
mov dword [esi + 0xc], eax
lea eax, [ecx - 1]
mov word [esi + 0x7a], ax
test ax, ax
je case.default.0x412247
mov eax, dword [esi + 8]
add dword [esi], eax
mov eax, dword [esi + 0xc]
add dword [esi + 4], eax
pop edi
pop esi
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0042e689
mov esp, ebp
pop ebp
ret
movzx eax, word [esi + 0x7a]
mov ecx, eax
test ax, ax
jne 0x412681
mov ax, word [edi + 2]
inc ax
test byte [esi + 0x85], 0x10
movzx ecx, ax
mov word [esi + 0x7a], ax
mov al, byte [edi + 1]
je 0x41267e
neg al
mov byte [esi + 0x7f], al
lea eax, [ecx - 1]
mov word [esi + 0x7a], ax
test ax, ax
je case.default.0x412247
mov al, byte [esi + 0x7e]
movzx edx, al
mov byte [esp + 0xa], al
mov eax, dword [edx*4 + 0x446bb0]
imul eax, dword [esi + 0x10]
sar eax, 8
add dword [esi], eax
mov eax, dword [edx*4 + 0x446ab0]
imul eax, dword [esi + 0x10]
sar eax, 8
add dword [esi + 4], eax
mov al, byte [esi + 0x7f]
add al, byte [esp + 0xa]
mov byte [esi + 0x7e], al
pop edi
pop esi
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0042e689
mov esp, ebp
pop ebp
ret
movzx eax, word [esi + 0x7a]
mov ecx, eax
test ax, ax
jne 0x41271c
mov ax, word [edi + 0xa]
inc ax
test byte [esi + 0x85], 0x10
movzx ecx, ax
mov word [esi + 0x7a], ax
mov eax, dword [edi + 1]
je 0x41270d
neg eax
mov dword [esi + 8], eax
mov eax, dword [edi + 5]
mov dword [esi + 0xc], eax
mov al, byte [edi + 9]
neg al
jmp 0x412719
mov dword [esi + 8], eax
mov eax, dword [edi + 5]
mov dword [esi + 0xc], eax
mov al, byte [edi + 9]
mov byte [esi + 0x7f], al
lea eax, [ecx - 1]
mov word [esi + 0x7a], ax
test ax, ax
je case.default.0x412247
mov al, byte [esi + 0x7e]
movzx edx, al
mov byte [esp + 0xa], al
mov eax, dword [edx*4 + 0x446bb0]
imul eax, dword [esi + 0x10]
sar eax, 8
add eax, dword [esi + 8]
add dword [esi], eax
mov eax, dword [edx*4 + 0x446ab0]
imul eax, dword [esi + 0x10]
sar eax, 8
add eax, dword [esi + 0xc]
add dword [esi + 4], eax
mov al, byte [esi + 0x7f]
add al, byte [esp + 0xa]
mov byte [esi + 0x7e], al
pop edi
pop esi
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0042e689
mov esp, ebp
pop ebp
ret
movzx eax, word [esi + 0x7a]
mov ecx, eax
test ax, ax
jne 0x4127b6
mov ax, word [edi + 7]
inc ax
test byte [esi + 0x85], 0x10
movzx ecx, ax
mov word [esi + 0x7a], ax
mov eax, dword [edi + 1]
je 0x41279e
neg eax
mov dword [esi + 8], eax
mov eax, dword [esi + 4]
mov dword [esi + 0xc], eax
mov al, byte [edi + 5]
mov byte [esi + 0x80], al
mov al, byte [edi + 6]
mov byte [esi + 0x7f], al
lea eax, [ecx - 1]
mov word [esi + 0x7a], ax
test ax, ax
je case.default.0x412247
mov eax, dword [esi + 8]
add dword [esi], eax
movzx eax, byte [esi + 0x7e]
movzx ecx, byte [esi + 0x80]
shl ecx, 6
imul ecx, dword [eax*4 + 0x446ab0]
mov al, byte [esi + 0x7f]
sar ecx, 8
add ecx, dword [esi + 0xc]
add byte [esi + 0x7e], al
mov dword [esi + 4], ecx
pop edi
pop esi
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0042e689
mov esp, ebp
pop ebp
ret
movzx eax, word [esi + 0x7a]
mov ecx, eax
test ax, ax
jne 0x412833
mov cx, word [edi + 7]
inc cx
mov word [esi + 0x7a], cx
mov eax, dword [edi + 1]
mov dword [esi + 0xc], eax
mov eax, dword [esi]
mov dword [esi + 8], eax
mov al, byte [edi + 5]
mov byte [esi + 0x80], al
mov al, byte [edi + 6]
mov byte [esi + 0x7f], al
movzx ecx, cx
lea eax, [ecx - 1]
mov word [esi + 0x7a], ax
test ax, ax
je case.default.0x412247
mov eax, dword [esi + 0xc]
add dword [esi + 4], eax
movzx eax, byte [esi + 0x7e]
movzx ecx, byte [esi + 0x80]
shl ecx, 6
imul ecx, dword [eax*4 + 0x446ab0]
mov al, byte [esi + 0x7f]
sar ecx, 8
add ecx, dword [esi + 8]
add byte [esi + 0x7e], al
mov dword [esi], ecx
pop edi
pop esi
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0042e689
mov esp, ebp
pop ebp
ret
movzx eax, word [esi + 0x7a]
mov ecx, eax
test ax, ax
jne 0x4128b7
mov di, word [edi + 3]
mov edx, dword [esp + 0x10]
inc di
mov word [esi + 0x7a], di
movzx eax, word [edx + 1]
shl eax, 6
sub eax, dword [esi]
movzx ecx, di
cdq
idiv ecx
movzx ecx, di
mov edi, dword [esp + 0x10]
mov dword [esi + 8], eax
mov dword [esi + 0xc], 0
lea eax, [ecx - 1]
mov word [esi + 0x7a], ax
test ax, ax
je case.default.0x412247
mov eax, dword [esi + 8]
add dword [esi], eax
pop edi
pop esi
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0042e689
mov esp, ebp
pop ebp
ret
movzx eax, word [esi + 0x7a]
mov ecx, eax
test ax, ax
jne 0x412917
mov di, word [edi + 3]
mov edx, dword [esp + 0x10]
inc di
mov word [esi + 0x7a], di
movzx eax, word [edx + 1]
shl eax, 6
sub eax, dword [esi + 4]
movzx ecx, di
cdq
idiv ecx
movzx ecx, di
mov edi, dword [esp + 0x10]
mov dword [esi + 8], 0
mov dword [esi + 0xc], eax
lea eax, [ecx - 1]
mov word [esi + 0x7a], ax
test ax, ax
jne 0x412641
jmp case.default.0x412247
movzx eax, word [esi + 0x7a]
mov ecx, eax
test ax, ax
jne 0x41262c
mov di, word [edi + 5]
mov edx, dword [esp + 0x10]
inc di
mov word [esi + 0x7a], di
movzx ecx, di
movzx eax, word [edx + 1]
shl eax, 6
sub eax, dword [esi]
cdq
idiv ecx
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 3]
shl eax, 6
sub eax, dword [esi + 4]
cdq
idiv ecx
jmp 0x412622
movzx eax, word [esi + 0x7a]
mov ecx, eax
test ax, ax
jne 0x4128b7
mov di, word [edi + 1]
mov eax, dword [0x4ccf88]
inc di
jmp 0x41289e
movzx eax, word [esi + 0x7a]
mov ecx, eax
test ax, ax
jne 0x412917
mov di, word [edi + 1]
mov eax, dword [0x4ccf8c]
inc di
jmp 0x4128fd
movzx eax, word [esi + 0x7a]
mov ecx, eax
test ax, ax
jne 0x41262c
mov di, word [edi + 1]
mov eax, dword [0x4ccf88]
inc di
sub eax, dword [esi]
cdq
movzx ecx, di
idiv ecx
mov dword [esi + 8], eax
mov eax, dword [0x4ccf8c]
sub eax, dword [esi + 4]
cdq
idiv ecx
jmp 0x412622
test byte [esi + 0x85], 0x10
je 0x4129fa
mov al, 0x80
sub al, byte [edi + 1]
mov byte [esi + 0x7e], al
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [esi + 0x7e], al
jmp case.default.0x412247
test byte [esi + 0x85], 0x10
mov al, byte [edi + 1]
je 0x412a13
neg al
add byte [esi + 0x7e], al
jmp case.default.0x412247
imul eax, dword [0x4f3e2c], 0x15a4e35
inc eax
mov dword [0x4f3e2c], eax
shr eax, 0x10
mov byte [esi + 0x7e], al
jmp case.default.0x412247
imul eax, dword [0x4f3e2c], 0x15a4e35
inc eax
mov dword [0x4f3e2c], eax
shr eax, 0x10
and al, 0x7f
sub al, 0x80
mov byte [esi + 0x7e], al
jmp case.default.0x412247
imul eax, dword [0x4f3e2c], 0x15a4e35
inc eax
mov dword [0x4f3e2c], eax
shr eax, 0x10
and al, 0x7f
mov byte [esi + 0x7e], al
jmp case.default.0x412247
mov al, byte [0x44ea9e]
mov byte [esi + 0x7e], al
mov al, byte [0x44ea9f]
add byte [0x44ea9e], al
jmp case.default.0x412247
mov edx, dword [0x4ccf8c]
mov ecx, dword [0x4ccf88]
sub edx, dword [esi + 4]
sub ecx, dword [esi]
call fcn.00404530
mov byte [esi + 0x7e], al
jmp case.default.0x412247
mov eax, dword [edi + 1]
mov dword [esi + 0x10], eax
jmp case.default.0x412247
mov eax, dword [edi + 1]
add dword [esi + 0x10], eax
jmp case.default.0x412247
movsx eax, word [edi + 1]
shl eax, 6
mov dword [esi], eax
movsx eax, word [edi + 3]
shl eax, 6
mov dword [esi + 4], eax
jmp case.default.0x412247
movsx eax, word [edi + 1]
shl eax, 6
add dword [esi], eax
movsx eax, word [edi + 3]
shl eax, 6
jmp 0x411ec9
mov eax, dword [0x4ccf88]
mov dword [esi], eax
mov eax, dword [0x4ccf8c]
mov dword [esi + 4], eax
jmp case.default.0x412247
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x8c]
mov edx, dword [esi + 0x90]
add ecx, dword [esi]
add edx, dword [esi + 4]
mov dword [0x4d4708], eax
mov eax, dword [esi + 0x98]
mov dword [0x4d470c], eax
mov eax, dword [esi + 0x9c]
mov dword [0x4d4710], eax
mov dword [0x4d4700], ecx
mov dword [0x4d4704], edx
call fcn.004284c0
jmp case.default.0x412247
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x98]
mov edx, dword [esi + 0x8c]
mov edi, dword [esi + 0x90]
add edx, dword [esi]
add edi, dword [esi + 4]
mov dword [0x4d4708], eax
mov eax, dword [esi + 0x9c]
mov dword [0x4d4710], eax
movzx eax, cl
and eax, 0x3f
mov dword [0x4d470c], ecx
shl eax, 4
mov dword [0x4d4700], edx
mov dword [0x4d4704], edi
mov dword [0x4f1c80], eax
call fcn.00428b20
mov edx, dword [esp + 0x10]
movzx eax, byte [edx]
jmp 0x411ecf
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x8c]
mov edx, dword [esi + 0x90]
add ecx, dword [esi]
add edx, dword [esi + 4]
mov dword [0x4d4708], eax
mov eax, dword [esi + 0x98]
mov dword [0x4d470c], eax
mov eax, dword [esi + 0x9c]
mov dword [0x4d4710], eax
mov dword [0x4d4700], ecx
mov dword [0x4d4704], edx
call fcn.004286a0
jmp case.default.0x412247
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x8c]
mov edx, dword [esi + 0x90]
add ecx, dword [esi]
add edx, dword [esi + 4]
mov dword [0x4d4708], eax
mov eax, dword [esi + 0x98]
mov dword [0x4d470c], eax
mov eax, dword [esi + 0x9c]
mov dword [0x4d4710], eax
mov dword [0x4d4700], ecx
mov dword [0x4d4704], edx
call fcn.004288c0
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [esi + 0x87], al
jmp case.default.0x412247
movsx eax, word [edi + 1]
shl eax, 6
mov dword [esi + 0x8c], eax
movsx eax, word [edi + 3]
shl eax, 6
mov dword [esi + 0x90], eax
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [esi + 0x9d], al
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [esi + 0x94], al
mov al, byte [edi + 2]
mov byte [esi + 0x95], al
jmp case.default.0x412247
mov al, byte [edi + 1]
add byte [esi + 0x94], al
mov al, byte [edi + 2]
add byte [esi + 0x95], al
jmp case.default.0x412247
mov edx, dword [0x4ccf8c]
mov ecx, dword [0x4ccf88]
sub edx, dword [esi + 4]
sub ecx, dword [esi]
call fcn.00404530
mov byte [esi + 0x94], al
jmp case.default.0x412247
mov al, byte [esi + 0x7e]
mov byte [esi + 0x94], al
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [esi + 0x96], al
mov al, byte [edi + 2]
mov byte [esi + 0x97], al
jmp case.default.0x412247
mov al, byte [edi + 1]
add byte [esi + 0x96], al
mov al, byte [edi + 2]
add byte [esi + 0x97], al
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [esi + 0x98], al
mov al, byte [edi + 2]
mov byte [esi + 0x9a], al
jmp case.default.0x412247
mov al, byte [esi + 0x98]
mov cl, byte [edi + 1]
add cl, al
xor cl, al
and cl, 0x3f
xor cl, al
mov byte [esi + 0x98], cl
mov al, byte [edi + 2]
add byte [esi + 0x9a], al
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [esi + 0x9f], al
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [esi + 0x9e], al
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [esi + 0x99], al
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [esi + 0x9b], al
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [esi + 0x9c], al
jmp case.default.0x412247
call fcn.00414bc0
call fcn.004299a0
call fcn.0041b7d0
call fcn.0041a430
call fcn.004115f0
jmp case.default.0x412247
add esi, 0xa0
mov ecx, 8
mov edi, 0x4b108c
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x24]
mov eax, dword [esi]
add dword [0x4b108c], eax
mov eax, dword [esi + 4]
add dword [0x4b1090], eax
movzx eax, byte [0x4cfb14]
sub eax, 0
je 0x412f3a
sub eax, 2
je 0x412e7e
sub eax, 1
jne 0x412f92
mov eax, dword [0x4b10a8]
shr eax, 8
and eax, 3
sub eax, 0
je 0x412e50
sub eax, 1
je 0x412e1f
sub eax, 1
jne 0x412e6d
mov eax, dword [0x4b10a4]
mov ecx, dword [0x4b109c]
shr eax, 0x10
add al, al
mov byte [0x4b10a6], al
mov eax, ecx
sar eax, 1
add ecx, eax
jmp 0x412f8c
movzx ecx, byte [0x4b10a6]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
cmp edx, 0xc
jle 0x412e39
mov edx, 0xc
mov ecx, dword [0x4b109c]
mov eax, ecx
add byte [0x4b10a6], dl
sar eax, 1
add ecx, eax
jmp 0x412f8c
movzx ecx, byte [0x4b10a5]
mov eax, 0xaaaaaaab
add byte [0x4b10a6], 4
mul ecx
shr edx, 1
sub byte [0x4b10a5], dl
mov ecx, dword [0x4b109c]
mov eax, ecx
sar eax, 1
add ecx, eax
jmp 0x412f8c
mov eax, dword [0x4b10a8]
shr eax, 8
and eax, 3
sub eax, 0
je 0x412f11
sub eax, 1
je 0x412ec4
sub eax, 1
jne 0x412f2b
mov cl, byte [0x4b10a6]
mov al, cl
shr al, 1
add cl, al
mov byte [0x4b10a6], cl
mov ecx, dword [0x4b109c]
mov eax, ecx
sar eax, 2
add ecx, eax
jmp 0x412f8c
mov cl, byte [0x4b10a6]
mov al, cl
and al, 0xfc
cmp al, 0x18
jbe 0x412ef1
mov eax, 6
add cl, al
mov byte [0x4b10a6], cl
mov ecx, dword [0x4b109c]
mov eax, ecx
sar eax, 2
add ecx, eax
jmp 0x412f8c
movzx eax, cl
shr eax, 2
add cl, al
mov byte [0x4b10a6], cl
mov ecx, dword [0x4b109c]
mov eax, ecx
sar eax, 2
add ecx, eax
jmp 0x412f8c
mov cl, byte [0x4b10a5]
add byte [0x4b10a6], 2
mov al, cl
shr al, 3
sub cl, al
mov byte [0x4b10a5], cl
mov ecx, dword [0x4b109c]
mov eax, ecx
sar eax, 2
add ecx, eax
jmp 0x412f8c
mov eax, dword [0x4b10a8]
shr eax, 8
and eax, 3
sub eax, 0
je 0x412f5c
sub eax, 1
je 0x412f54
sub eax, 1
jne 0x412f7f
shr byte [0x4b10a6], 1
jmp 0x412f7f
mov al, byte [0x4b10a6]
cmp al, 3
jb 0x412f6c
add al, 0xfe
mov byte [0x4b10a6], al
mov cl, byte [0x4b10a5]
mov al, cl
shr al, 2
add cl, al
mov byte [0x4b10a5], cl
mov ecx, dword [0x4b109c]
mov eax, ecx
sar eax, 2
sub ecx, eax
mov dword [0x4b109c], ecx
mov ecx, dword [0x4b1094]
sar ecx, 1
mov eax, ecx
imul eax, dword [0x4cfb18]
sar eax, 0xd
add eax, ecx
mov dword [0x4b1094], eax
call fcn.0041b390
mov edx, dword [esp + 0x10]
movzx eax, byte [edx]
jmp 0x411ecf
add esi, 0xa0
mov ecx, 8
mov edi, 0x4b108c
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x24]
mov eax, dword [esi]
add dword [0x4b108c], eax
mov eax, dword [esi + 4]
add dword [0x4b1090], eax
call fcn.0041b390
mov edx, dword [esp + 0x10]
movzx eax, byte [edx]
jmp 0x411ecf
mov al, byte [edi + 1]
mov byte [esi + 0xbd], al
jmp case.default.0x412247
mov eax, dword [edi + 1]
mov dword [esi + 0xb0], eax
jmp case.default.0x412247
mov eax, dword [edi + 1]
add dword [esi + 0xb0], eax
jmp case.default.0x412247
mov eax, dword [edi + 1]
mov dword [esi + 0xb4], eax
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [esi + 0xb8], al
mov al, byte [edi + 2]
mov byte [esi + 0xb9], al
jmp case.default.0x412247
mov al, byte [edi + 1]
add byte [esi + 0xb8], al
mov al, byte [edi + 2]
add byte [esi + 0xb9], al
jmp case.default.0x412247
mov edx, dword [0x4ccf8c]
mov ecx, dword [0x4ccf88]
sub edx, dword [esi + 4]
sub ecx, dword [esi]
call fcn.00404530
mov byte [esi + 0xb8], al
jmp case.default.0x412247
mov al, byte [esi + 0x7e]
mov byte [esi + 0xb8], al
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [esi + 0xba], al
jmp case.default.0x412247
mov al, byte [edi + 1]
add byte [esi + 0xba], al
jmp case.default.0x412247
mov eax, dword [edi + 1]
mov dword [esi + 0xa8], eax
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [esi + 0xbb], al
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [esi + 0xbe], al
jmp case.default.0x412247
mov eax, dword [edi + 1]
mov dword [esi + 0xac], eax
jmp case.default.0x412247
movsx eax, word [edi + 1]
shl eax, 6
mov dword [esi + 0xa0], eax
movsx eax, word [edi + 3]
shl eax, 6
mov dword [esi + 0xa4], eax
jmp case.default.0x412247
or byte [esi + 0x85], 1
jmp case.default.0x412247
and byte [esi + 0x85], 0xfe
jmp case.default.0x412247
or byte [esi + 0x85], 2
jmp case.default.0x412247
and byte [esi + 0x85], 0xfd
jmp case.default.0x412247
or byte [esi + 0x85], 4
jmp case.default.0x412247
and byte [esi + 0x85], 0xfb
jmp case.default.0x412247
or byte [esi + 0x85], 8
jmp case.default.0x412247
and byte [esi + 0x85], 0xf7
jmp case.default.0x412247
cmp dword [esi], 0x4fe0
jge case.0x411d68.153
or byte [esi + 0x85], 0x10
jmp case.default.0x412247
and byte [esi + 0x85], 0xef
jmp case.default.0x412247
mov cl, byte [edi + 1]
mov byte [esi + 0x82], cl
mov byte [esi + 0x81], cl
mov al, byte [edi + 2]
mov byte [esi + 0x83], al
movzx eax, cl
imul ecx, eax, 0x10c
movzx eax, word [ecx + 0x494718]
shl ax, 5
mov word [esi + 0x76], ax
movzx eax, word [ecx + 0x494714]
shl ax, 5
mov word [esi + 0x74], ax
xor eax, eax
mov word [esi + 0x7c], ax
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [esi + 0x82], al
jmp case.default.0x412247
mov edx, dword [esi]
mov cl, byte [edi + 1]
push 0
call fcn.004033c0
add esp, 4
jmp case.default.0x412247
mov al, byte [edi + 1]
xor ecx, ecx
mov byte [esp + 0xa], al
mov eax, 0x456370
mov edx, eax
mov dword [esp + 0x18], edx
cmp eax, esi
je 0x41320f
add eax, 0xd0
inc ecx
cmp eax, 0x4566b0
jl 0x4131f8
cmp ecx, 4
je case.default.0x412247
movzx eax, byte [esp + 0xa]
cmp eax, 6
ja case.default.0x412247
jmp dword [eax*4 + 0x413fd0]
xor ecx, ecx
mov eax, 0x49ad94
cmp byte [eax], 0
je 0x41324c
add eax, 0xbc8
inc ecx
cmp eax, 0x49dcb4
jl 0x413234
mov eax, dword [esp + 0x30]
jmp 0x41325b
imul eax, ecx, 0xbc8
add eax, 0x49a1d0
mov dword [esp + 0x30], eax
cmp ecx, 4
je case.default.0x412247
mov byte [eax + 0xbc4], 1
lea ecx, [eax + 8]
mov dword [eax + 0xbb8], edx
mov esi, 0xf0
mov dword [eax + 0xbc0], 0
mov dword [eax + 0xbbc], 0x1e
lea ecx, [ecx]
mov eax, dword [edx]
lea ecx, [ecx + 0xc]
mov dword [ecx - 0x14], eax
mov eax, dword [edx + 4]
mov dword [ecx - 0x10], eax
mov al, byte [edx + 0x7e]
mov byte [ecx - 0xc], al
sub esi, 1
jne 0x413290
mov edi, dword [esp + 0x30]
mov esi, 0x1e
add edi, 0xb40
jmp 0x4132c0
mov cx, word [0x497bd4]
movzx eax, cx
mov dword [esp + 0xc], eax
inc eax
cmp eax, 0x32
jae 0x41330a
mov eax, dword [esp + 0xc]
inc cx
mov word [0x497bd4], cx
push 0x30
push dword [edx + 4]
movzx eax, word [eax*2 + 0x497b70]
mov edx, dword [edx]
lea ecx, [eax + eax*2]
shl ecx, 6
add ecx, 0x497be0
call fcn.00411ac0
mov edx, dword [esp + 0x20]
add esp, 8
jmp 0x41330c
xor ecx, ecx
mov dword [edi], ecx
add edi, 4
sub esi, 1
jne 0x4132c0
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
jmp case.default.0x412247
mov byte [edx + 0xcc], 2
mov dword [edx + 0xc8], 0
jmp case.default.0x412247
mov byte [edx + 0xcc], 3
mov dword [edx + 0xc8], 0
jmp case.default.0x412247
push ecx
mov ecx, dword [esp + 0x1c]
mov dl, 5
call fcn.004145d0
add esp, 4
jmp case.default.0x412247
push ecx
mov ecx, dword [esp + 0x1c]
mov dl, 6
call fcn.004145d0
add esp, 4
jmp case.default.0x412247
mov byte [edx + 0xcc], 4
jmp case.default.0x412247
mov byte [edx + 0xcc], 5
jmp case.default.0x412247
mov eax, dword [edi + 1]
xor edx, edx
mov dword [esp + 0x14], eax
xor ecx, ecx
mov eax, 0x456370
nop
cmp eax, esi
je 0x4133b8
add ecx, 0xd0
inc edx
add eax, 0xd0
cmp ecx, 0x340
jl 0x4133a0
cmp edx, 4
je case.default.0x412247
cmp byte [0x49a1bd], 0
mov dword [esp + 0xc], 0
jbe case.default.0x412247
mov edi, dword [esp + 0xc]
mov edx, 0x49a160
mov esi, dword [esp + 0x14]
mov eax, dword [0x4f3cf4]
lea edx, [edx + 0xc]
mov ecx, dword [edx - 0xc]
inc edi
mov eax, dword [eax + esi*4 + 4]
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x24], eax
xor eax, eax
mov byte [ecx + 0x87], 0
mov dword [ecx + 0x78], eax
movzx eax, byte [0x49a1bd]
cmp edi, eax
jl 0x4133e3
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
jmp case.default.0x412247
mov dl, byte [edi + 1]
mov ecx, esi
call fcn.0040bd20
jmp case.default.0x412247
mov eax, dword [edi + 2]
xor edx, edx
mov dword [esp + 0x14], eax
xor ecx, ecx
mov al, byte [edi + 1]
mov byte [esp + 0xa], al
mov eax, 0x456370
cmp eax, esi
je 0x41345b
add ecx, 0xd0
inc edx
add eax, 0xd0
cmp ecx, 0x340
jl 0x413443
cmp edx, 4
je case.default.0x412247
movzx eax, byte [esp + 0xa]
sub eax, 1
je 0x4134cc
sub eax, 2
je 0x4134be
sub eax, 1
jne case.default.0x412247
mov edx, dword [0x4ccf8c]
mov ecx, dword [0x4ccf88]
sub edx, dword [0x49a1b0]
sub ecx, dword [0x49a1ac]
mov dword [0x49a1b4], 0x280
mov dword [0x49a1b8], 0xfffffff8
call fcn.00404530
mov byte [0x49a1bc], al
mov byte [0x49a1c9], 4
jmp case.default.0x412247
mov eax, dword [esp + 0x14]
mov dword [0x49a1c4], eax
jmp case.default.0x412247
cmp byte [0x49a1c8], 0
mov eax, dword [esp + 0x14]
jg 0x4134db
neg al
mov byte [0x49a1c8], al
jmp case.default.0x412247
mov al, byte [edi + 1]
mov byte [0x44ea9f], al
jmp case.default.0x412247
mov cx, word [0x497bd4]
movzx edx, cx
lea eax, [edx + 1]
cmp eax, 0x32
jae 0x413596
movzx eax, word [edx*2 + 0x497b70]
inc cx
mov word [0x497bd4], cx
lea ecx, [eax + eax*2]
mov eax, dword [esi]
sar eax, 6
add ax, word [edi + 1]
movzx edx, ax
mov eax, dword [esi + 4]
sar eax, 6
add ax, word [edi + 3]
shl ecx, 6
add ecx, 0x497be0
movzx eax, ax
cmp byte [edi], 0xa5
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], eax
jne 0x413579
movzx eax, byte [edi + 6]
lea eax, [eax*4 + 4]
push eax
push dword [esp + 0x18]
call fcn.00411bc0
mov dl, byte [edi + 5]
add esp, 8
mov ecx, esi
call fcn.00414200
mov ecx, dword [esp + 0xc]
mov byte [ecx + 0x7e], al
jmp case.default.0x412247
movzx eax, byte [edi + 5]
lea eax, [eax*4 + 4]
push eax
push dword [esp + 0x18]
call fcn.00411bc0
add esp, 8
jmp case.default.0x412247
movzx eax, byte [edi]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x30], edx
movzx eax, byte [eax + 0x4470c0]
add dword [esi + 0x1c], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x20], eax
jmp 0x411edc
movzx eax, byte [edi + 1]
mov edx, dword [esi + 4]
mov ecx, dword [esi]
and edx, 0xffffffc0
push eax
and ecx, 0xffffffc0
mov dword [esp + 0x10], 0
call fcn.0040bb00
add esp, 4
cmp eax, 4
je case.default.0x412247
imul eax, eax, 0xd0
lea ecx, [eax + 0x456370]
mov dword [eax + 0x456438], 0
mov dword [eax + 0x456434], 0x40bc80
mov word [eax + 0x45643c], 0xff00
call fcn.00411d10
cmp byte [0x45643d], 0
mov eax, dword [0x456384]
jne 0x413624
mov eax, dword [esp + 0xc]
cmp byte [0x45650d], 0
je 0x413633
add eax, dword [0x456454]
cmp byte [0x4565dd], 0
je 0x413642
add eax, dword [0x456524]
cmp byte [0x4566ad], 0
je 0x413651
add eax, dword [0x4565f4]
inc word [0x451c28]
mov dword [0x4566bc], eax
mov byte [0x4566f4], 5
jmp case.default.0x412247
mov dl, byte [edi + 2]
mov ecx, esi
call fcn.00414200
movzx edx, byte [edi + 1]
mov ecx, eax
cmp edx, 0x91
ja case.0x41368c.8
movzx eax, byte [edx + 0x41403c]
jmp dword [eax*4 + 0x413fec]
mov dword [esi + edx*4 + 0x34], ecx
jmp case.default.0x412247
mov byte [esi + 0xb8], cl
jmp case.default.0x412247
mov byte [esi + 0xb9], cl
jmp case.default.0x412247
mov byte [esi + 0xba], cl
jmp case.default.0x412247
mov byte [esi + 0xbb], cl
jmp case.default.0x412247
mov dword [esi + 0xb0], ecx
jmp case.default.0x412247
mov dword [esi + 0xa8], ecx
jmp case.default.0x412247
mov byte [esi + 0x94], cl
jmp case.default.0x412247
mov byte [esi + 0x95], cl
jmp case.default.0x412247
mov byte [esi + 0x96], cl
jmp case.default.0x412247
mov byte [esi + 0x97], cl
jmp case.default.0x412247
mov byte [esi + 0x98], cl
jmp case.default.0x412247
mov byte [esi + 0x99], cl
jmp case.default.0x412247
mov byte [esi + 0x9a], cl
jmp case.default.0x412247
mov byte [esi + 0x9c], cl
jmp case.default.0x412247
mov byte [esi + 0x9b], cl
jmp case.default.0x412247
mov dword [esi], ecx
jmp case.default.0x412247
mov dword [esi + 4], ecx
jmp case.default.0x412247
mov byte [esi + 0x7e], cl
jmp case.default.0x412247
cmp byte [0x4f34bb], 0
je case.default.0x412247
mov dword [esp + 0x44], 0x447630
mov dword [esp + 0x48], 0x1d
lea eax, [esp + 0x3c]
mov dword [esp + 0x40], 8
push 3
push eax
mov dword [esp + 0x44], str.Error_:
mov dword [esp + 0x54], 0x447588
mov dword [esp + 0x58], 1
call fcn.00404800
add esp, 8
jmp case.default.0x412247
movzx ecx, byte [edi + 1]
cmp ecx, 7
ja case.default.0x4137b9
movzx eax, byte [ecx + 0x4140d4]
jmp dword [eax*4 + 0x4140d0]
mov eax, dword [edi + 2]
mov dword [esi + ecx*4 + 0x34], eax
jmp case.default.0x412247
cmp byte [0x4f34bb], 0
je case.default.0x412247
mov dword [esp + 0x44], 0x447650
mov dword [esp + 0x48], 0x1b
jmp 0x413775
movzx ecx, byte [edi + 1]
cmp ecx, 7
ja case.default.0x4137b9
movzx eax, byte [ecx + 0x4140e0]
jmp dword [eax*4 + 0x4140dc]
inc dword [esi + ecx*4 + 0x34]
jmp case.default.0x412247
movzx ecx, byte [edi + 1]
cmp ecx, 7
ja case.default.0x4137b9
movzx eax, byte [ecx + 0x4140ec]
jmp dword [eax*4 + 0x4140e8]
dec dword [esi + ecx*4 + 0x34]
jmp case.default.0x412247
movzx eax, byte [edi + 1]
mov dword [esp + 0xc], eax
cmp eax, 7
ja case.default.0x4137b9
movzx eax, byte [eax + 0x4140f8]
jmp dword [eax*4 + 0x4140f4]
mov dl, byte [edi + 2]
mov ecx, esi
call fcn.00414200
mov ecx, dword [esp + 0xc]
add dword [esi + ecx*4 + 0x34], eax
jmp case.default.0x412247
movzx eax, byte [edi + 1]
mov dword [esp + 0xc], eax
cmp eax, 7
ja case.default.0x4137b9
movzx eax, byte [eax + 0x414104]
jmp dword [eax*4 + 0x414100]
mov dl, byte [edi + 2]
mov ecx, esi
call fcn.00414200
mov ecx, dword [esp + 0xc]
sub dword [esi + ecx*4 + 0x34], eax
jmp case.default.0x412247
mov al, byte [edi + 1]
cmp al, 8
jae case.default.0x412247
mov dl, byte [edi + 2]
cmp dl, 8
jae case.default.0x412247
movzx eax, al
lea ecx, [esi + eax*4]
movzx eax, dl
movzx eax, byte [esi + eax*4 + 0x34]
mov eax, dword [eax*4 + 0x446ab0]
imul eax, dword [ecx + 0x34]
sar eax, 8
mov dword [ecx + 0x34], eax
jmp case.default.0x412247
mov al, byte [edi + 1]
cmp al, 8
jae case.default.0x412247
mov dl, byte [edi + 2]
cmp dl, 8
jae case.default.0x412247
movzx eax, al
lea ecx, [esi + eax*4]
movzx eax, dl
movzx eax, byte [esi + eax*4 + 0x34]
mov eax, dword [eax*4 + 0x446bb0]
imul eax, dword [ecx + 0x34]
sar eax, 8
mov dword [ecx + 0x34], eax
jmp case.default.0x412247
movzx ecx, byte [edi + 1]
cmp ecx, 7
ja case.default.0x4137b9
movzx eax, byte [ecx + 0x414110]
jmp dword [eax*4 + 0x41410c]
mov eax, dword [edi + 2]
mov dword [esp + 0xc], eax
test eax, eax
je case.default.0x412247
mov eax, dword [esi + ecx*4 + 0x34]
xor edx, edx
div dword [esp + 0xc]
mov dword [esi + ecx*4 + 0x34], edx
jmp case.default.0x412247
movzx edx, byte [edi + 1]
cmp edx, 7
ja case.default.0x4137b9
movzx eax, byte [edx + 0x41411c]
jmp dword [eax*4 + 0x414118]
imul ecx, dword [0x4f3e2c], 0x15a4e35
inc ecx
imul eax, ecx, 0x15a4e35
shr ecx, 0x10
and ecx, 0x7fff
inc eax
mov dword [0x4f3e2c], eax
shr eax, 0x10
and eax, 0x7fff
imul eax, ecx
mov dword [esi + edx*4 + 0x34], eax
jmp case.default.0x412247
mov dl, byte [edi + 1]
cmp dl, 8
jae case.0x411d68.14
mov al, byte [edi + 2]
mov byte [esp + 0xa], al
cmp al, 8
jae case.0x411d68.14
mov ecx, esi
call fcn.00414200
mov dl, byte [esp + 0xa]
mov dword [esp + 0x20], eax
call fcn.00414200
movzx ecx, byte [edi]
sub dword [esp + 0x20], eax
movzx ecx, byte [ecx + 0x4470c0]
jmp 0x411ed6
mov dl, byte [edi + 1]
cmp dl, 8
jae case.0x411d68.14
mov ecx, esi
call fcn.00414200
sub eax, dword [edi + 2]
mov dword [esp + 0x20], eax
jmp case.default.0x412247
cmp dword [esp + 0x20], 0
jle case.default.0x412247
mov ecx, dword [edi + 1]
jmp 0x411ed9
cmp dword [esp + 0x20], 0
jge case.default.0x412247
mov ecx, dword [edi + 1]
jmp 0x411ed9
cmp dword [esp + 0x20], 0
jne case.default.0x412247
mov ecx, dword [edi + 1]
jmp 0x411ed9
mov cl, 0xc
call fcn.004277d0
movzx eax, byte [edi]
movzx eax, byte [eax + 0x4470c0]
add dword [esi + 0x1c], eax
pop edi
pop esi
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0042e689
mov esp, ebp
pop ebp
ret
movzx eax, byte [edi + 1]
mov dword [esi + 0x18], eax
movzx eax, byte [edi]
movzx eax, byte [eax + 0x4470c0]
add dword [esi + 0x1c], eax
pop edi
pop esi
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0042e689
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0xbb]
mov ecx, 1
mov dl, byte [esi + 0xba]
mov byte [esp + 0xa], al
mov al, byte [esi + 0xb8]
mov byte [esp + 0x2a], al
mov al, byte [esi + 0xb9]
mov byte [esp + 0xb], al
mov al, byte [esi + 0xbe]
mov byte [esp + 0x28], al
mov eax, dword [esi + 0xa0]
add eax, dword [esi]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0xa4]
add eax, dword [esi + 4]
mov dword [esp + 0x2c], eax
movzx eax, dl
mov byte [esp + 0x29], dl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], eax
cmp eax, ecx
jb 0x413bbd
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x2c]
jmp 0x413af0
mov edx, dword [0x4a1fc4]
test edx, edx
je 0x413bb5
mov eax, dword [edx + 0x14]
mov dword [0x4a1fc4], eax
mov eax, dword [0x4b0504]
mov dword [edx + 0x14], eax
mov ah, 1
mov al, byte [esp + 0xa]
inc word [0x4a1fac]
mov dword [0x4b0504], edx
mov byte [edx + 0x12], al
mov al, byte [esp + 0x28]
mov byte [edx + 0x10], al
mov al, cl
and al, 1
sar ecx, 1
add al, al
movzx ecx, cl
sub ah, al
mov dword [edx + 4], 0x100
movzx eax, ah
imul ecx, eax
movzx eax, byte [esp + 0xb]
mov dword [edx + 8], 0xa
mov dword [edx + 0xc], 0
mov dword [edx], 0
movzx ecx, cl
imul ecx, eax
test byte [esp + 0x29], 1
mov byte [edx + 0x13], 1
mov byte [edx + 0x11], 0
jne 0x413b7b
mov al, byte [esp + 0xb]
shr al, 1
sub cl, al
mov al, byte [esp + 0x2a]
add al, cl
mov ecx, 0x1c
mov byte [esp + 0x2b], al
lea eax, [edx + 0x1c]
mov dl, byte [esp + 0x2b]
mov dword [eax - 4], edi
lea eax, [eax + 0xc]
mov dword [eax - 0xc], esi
mov byte [eax - 8], dl
sub ecx, 1
jne 0x413b91
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x34]
jle 0x413af0
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
movzx eax, byte [edi]
movzx eax, byte [eax + 0x4470c0]
add dword [esi + 0x1c], eax
pop edi
pop esi
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0042e689
mov esp, ebp
pop ebp
ret
cmp byte [esi + 0x88], 0
je 0x413ca8
mov ecx, esi
call fcn.0041c700
jmp 0x413ca8
cmp word [esi + 0x7a], 0
jne 0x413c48
movzx edx, byte [esi + 0x7e]
mov eax, 0x270f
mov word [esi + 0x7a], ax
mov eax, dword [edx*4 + 0x446bb0]
imul eax, dword [esi + 0x10]
sar eax, 8
mov dword [esi + 8], eax
mov eax, dword [edx*4 + 0x446ab0]
imul eax, dword [esi + 0x10]
sar eax, 8
mov dword [esi + 0xc], eax
mov al, byte [edi + 1]
or byte [esi + 0x85], 2
mov byte [esi + 0x7f], al
pop edi
pop esi
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0042e689
mov esp, ebp
pop ebp
ret
mov eax, dword [esi]
mov edi, dword [esi + 8]
mov edx, dword [esi + 4]
add edx, dword [esi + 0xc]
mov dword [esp + 0x14], eax
add eax, edi
mov ecx, dword [esp + 0x14]
mov dword [esi], eax
add ecx, edi
movsx eax, byte [esi + 0x7f]
add eax, dword [esi + 0xc]
mov dword [esi + 4], edx
mov dword [esi + 0xc], eax
mov esi, dword [esp + 0x24]
cmp ecx, 0x2000
jl 0x413c82
cmp ecx, 0x7fc0
jle 0x413c8d
mov ecx, dword [esp + 0x14]
neg edi
mov dword [esi + 8], edi
mov dword [esi], ecx
test edx, edx
jns 0x413c9b
neg eax
add edx, eax
mov dword [esi + 0xc], eax
mov dword [esi + 4], edx
movzx eax, word [esi + 0x76]
add eax, 0x77c0
cmp edx, eax
jle case.0x411d68.14
mov byte [esi + 0x85], 0x40
mov ecx, dword [esp + 0x54]
pop edi
pop esi
xor ecx, esp
call fcn.0042e689
mov esp, ebp
pop ebp
ret