Function at 0x48c660
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x10c
call fcn.0048c590
mov esi, dword [0x4a49e8]
mov eax, dword [esi + 0x4b4]
test eax, eax
je 0x48c7ff
test al, 1
jne 0x48c80a
mov eax, dword [esi + 0x4b4]
test al, 0x10
je 0x48c786
and eax, 0xffffffef
mov ecx, 0x7d0
mov dword [esi + 0x4b4], eax
movzx eax, word [esi + 0x4c4]
mov dword [ebp - 0xec], ecx
test ax, ax
js 0x48d0ad
cwde
xor ecx, ecx
cmp eax, 0
jle 0x48c6fb
mov edi, 0x66666667
mov ebx, eax
mov edx, dword [ebp - 0xec]
inc ecx
lea eax, [edx + edx*2]
shl eax, 2
mov dword [ebp - 0xf0], eax
imul edi
mov eax, dword [ebp - 0xf0]
sar edx, 2
sar eax, 0x1f
sub edx, eax
cmp ebx, ecx
mov dword [ebp - 0xec], edx
jg 0x48c6ce
movzx ebx, word [esi + 0x30]
mov edi, 0x51eb851f
mov eax, dword [ebp - 0xec]
imul edi
mov eax, dword [ebp - 0xec]
mov ecx, edx
sar ecx, 5
movsx edx, bx
sar eax, 0x1f
sub ecx, eax
cmp edx, ecx
je 0x48c786
test bx, bx
mov eax, 0x64
je 0x48c73f
movsx eax, word [esi + 0x32]
mov ebx, edx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cdq
idiv ebx
mov word [esi + 0x30], cx
movsx ebx, cx
imul ebx, eax
mov word [esi + 0x34], 0
mov eax, ebx
imul edi
mov eax, ebx
sar eax, 0x1f
mov ecx, edx
sar ecx, 5
sub ecx, eax
lea eax, [ecx + ecx*4]
lea eax, [eax + eax*4]
shl eax, 2
sub ebx, eax
xor eax, eax
cmp ebx, 0x31
setg al
add eax, ecx
or dword [esi + 0x4b8], 0x40
or dword [esi + 0x4bc], 4
mov word [esi + 0x32], ax
mov eax, dword [esi + 0x4b4]
test al, 0x20
jne 0x48d0f2
cmp byte [0x4f2740], 0
je 0x48c7ff
cmp word [0x8732a0], 0
jne 0x48c7ff
mov esi, dword [0x4a49e8]
mov eax, dword [esi + 0x4b4]
test eax, 0x10000
jne 0x48de8e
mov eax, dword [esi + 0x4b4]
test eax, 0x20000
jne 0x48de73
mov eax, dword [esi + 0x4b4]
test eax, 0x20000000
jne 0x48de51
mov eax, dword [esi + 0x4b4]
test eax, 0x10000000
jne 0x48de2f
mov eax, dword [esi + 0x4b4]
test eax, eax
js 0x48d105
add esp, 0x10c
pop ebx
pop esi
pop edi
pop ebp
ret
movsx edx, word [esi + 0x572]
and eax, 0xfffffffe
mov dword [esi + 0x4b4], eax
movsx eax, word [esi + 0x56e]
movsx ecx, word [esi + 0x576]
movsx ebx, word [esi + 0x57a]
mov dword [ebp - 0xc8], edx
mov dword [ebp - 0xc4], eax
movsx eax, word [esi + 0x57c]
movsx esi, word [esi + 0x57e]
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0xd4], eax
mov eax, 1
mov dword [ebp - 0xd8], esi
mov dword [esp + 4], eax
mov dword [esp], 1
call fcn.0044d840
mov dword [ebp - 0xdc], eax
mov eax, 1
mov dword [esp + 4], eax
mov dword [esp], 1
call fcn.0044da10
mov dword [ebp - 0xe0], eax
mov esi, dword [0x4a49e8]
xor eax, eax
mov dword [ebp - 0xe8], eax
cmp byte [esi + 0x106], 0
jne 0x48c8ce
mov edx, dword [0x4f3410]
add edx, 0x780
mov dword [ebp - 0xe4], edx
movzx eax, byte [edx + 6]
sub al, 0x14
cmp al, 3
jbe 0x48dfc8
movsx ebx, word [esi + 0x588]
xor edi, edi
mov eax, dword [esi + 0x550]
mov edx, dword [esi + 0x554]
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xc0], edx
movsx eax, word [esi + edi*2 + 0x4c0]
mov dword [ebp + edi*4 - 0x28], eax
movsx eax, word [esi + edi*2 + 0x44]
mov dword [ebp + edi*4 - 0x38], eax
inc edi
cmp edi, 3
jle 0x48c8f5
xor edi, edi
movsx eax, word [esi + edi*2 + 0x4c8]
mov dword [ebp + edi*4 - 0x58], eax
inc edi
cmp edi, 7
jle 0x48c912
mov byte [esi + 0x586], 0
mov ecx, 2
xor edx, edx
mov word [esi + 0x588], cx
xor eax, eax
xor edi, edi
mov word [esi + 0x57c], dx
mov word [esi + 0x57e], ax
mov esi, dword [0x4a49e8]
xor eax, eax
mov word [esi + edi*2 + 0x4da], ax
inc edi
cmp edi, 3
jle 0x48c951
xor edi, edi
xor eax, eax
mov word [esi + edi*2 + 0x4e2], ax
inc edi
cmp edi, 3
jle 0x48c963
xor edi, edi
xor eax, eax
mov word [esi + edi*2 + 0x4c8], ax
inc edi
cmp edi, 7
jle 0x48c975
xor edi, edi
xor eax, eax
mov word [esi + edi*2 + 0x4ea], ax
inc edi
cmp edi, 7
jle 0x48c987
xor edi, edi
xor eax, eax
mov word [esi + edi*2 + 0x4fa], ax
inc edi
cmp edi, 7
jle 0x48c999
xor edi, edi
xor ebx, ebx
mov word [esi + edi*2 + 0x50a], bx
inc edi
cmp edi, 7
jle 0x48c9ab
mov byte [esi + 0x1e1], 0
xor eax, eax
xor ecx, ecx
mov word [esi + 0x56e], ax
xor eax, eax
xor edx, edx
mov word [esi + 0x572], ax
xor eax, eax
xor edi, edi
mov word [esi + 0x576], ax
xor eax, eax
xor ebx, ebx
mov word [esi + 0x57a], ax
xor eax, eax
mov word [esi + 0x574], ax
xor eax, eax
mov word [esi + 0x578], ax
xor eax, eax
mov dword [esi + 0x568], eax
xor eax, eax
mov dword [esi + 0x554], eax
xor eax, eax
mov dword [esi + 0x558], eax
xor eax, eax
mov dword [esi + 0x54c], eax
xor eax, eax
mov dword [esi + 0x550], eax
xor eax, eax
mov dword [esi + 0x53c], eax
mov eax, 1
mov dword [esi + 0x51c], eax
mov eax, 1
mov dword [esi + 0x524], eax
xor eax, eax
mov dword [esi + 0x528], eax
xor eax, eax
mov word [esi + 0x56c], cx
xor ecx, ecx
mov word [esi + 0x570], dx
xor edx, edx
mov word [esi + 0x58a], di
xor edi, edi
mov dword [esi + 0x52c], eax
xor eax, eax
mov dword [esi + 0x55c], ebx
xor ebx, ebx
mov dword [esi + 0x560], ecx
xor ecx, ecx
mov dword [esi + 0x564], edx
mov edx, 1
mov dword [esi + 0x544], edi
xor edi, edi
mov dword [esi + 0x530], eax
xor eax, eax
mov dword [esi + 0x538], edi
xor edi, edi
mov dword [esi + 0x540], ebx
mov dword [esi + 0x548], ecx
mov dword [esi + 0x520], edx
mov dword [esi + 0x534], eax
lea eax, [edi + edi*4]
xor ebx, ebx
lea ecx, [eax*4]
lea esi, [esi]
mov esi, dword [0x4a49e8]
mov eax, ecx
add eax, esi
add eax, ebx
inc ebx
cmp ebx, 0x13
movzx edx, byte [eax + 0x5c]
mov byte [eax + 0x3c0], dl
jle 0x48cad0
inc edi
cmp edi, 7
jle 0x48cabe
mov esi, dword [0x4a49e8]
xor ebx, ebx
xor edi, edi
mov dword [esi + 0x470], ebx
jmp 0x48cb0a
mov esi, dword [0x4a49e8]
mov edx, dword [0x4f3410]
mov eax, edi
lea ebx, [ebp - 0xac]
shl eax, 4
sub eax, edi
lea eax, [edx + eax*4]
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0xe4]
movzx eax, byte [eax + 0xb]
movsx edx, word [ecx + 0xc]
imul eax, edx
lea edx, [ebp - 0xb4]
add dword [esi + 0x470], eax
lea eax, [ebp - 0xb0]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.004629d0
test byte [ebp - 0xad], 4
je 0x48cb72
mov esi, dword [0x4a49e8]
inc dword [esi + 0x55c]
inc edi
cmp edi, 0x25
jle 0x48cb04
mov edi, 0x18
jmp 0x48cb8a
inc edi
cmp edi, 0x25
jg 0x48d143
mov eax, edi
mov edx, dword [0x4f3410]
shl eax, 4
sub eax, edi
lea eax, [edx + eax*4]
cmp word [eax], 0
mov dword [ebp - 0xe4], eax
je 0x48cb80
mov edx, dword [ebp - 0xe4]
lea ecx, [ebp - 0xac]
lea eax, [ebp - 0xb4]
mov dword [esp + 0xc], ecx
lea ebx, [ebp - 0xb0]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.004629d0
mov ecx, dword [ebp - 0xb4]
test cl, 1
je 0x48cbfd
mov esi, dword [0x4a49e8]
mov ebx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x4da]
movzx edx, word [ebx + 8]
add eax, edx
mov word [esi + 0x4da], ax
test cl, 2
je 0x48cc22
mov esi, dword [0x4a49e8]
mov ebx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x4dc]
movzx edx, word [ebx + 8]
add eax, edx
mov word [esi + 0x4dc], ax
test cl, 4
je 0x48cc47
mov esi, dword [0x4a49e8]
mov ebx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x4de]
movzx edx, word [ebx + 8]
add eax, edx
mov word [esi + 0x4de], ax
test cl, 8
je 0x48cc6c
mov esi, dword [0x4a49e8]
mov ebx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x4e0]
movzx edx, word [ebx + 8]
add eax, edx
mov word [esi + 0x4e0], ax
test cl, 0x10
je 0x48cc91
mov esi, dword [0x4a49e8]
mov ebx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x4da]
movzx edx, word [ebx + 8]
sub eax, edx
mov word [esi + 0x4da], ax
test cl, 0x20
je 0x48ccb6
mov esi, dword [0x4a49e8]
mov ebx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x4dc]
movzx edx, word [ebx + 8]
sub eax, edx
mov word [esi + 0x4dc], ax
test cl, 0x40
je 0x48ccdb
mov esi, dword [0x4a49e8]
mov ebx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x4de]
movzx edx, word [ebx + 8]
sub eax, edx
mov word [esi + 0x4de], ax
test cl, cl
jns 0x48ccff
mov esi, dword [0x4a49e8]
mov ebx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x4e0]
movzx edx, word [ebx + 8]
sub eax, edx
mov word [esi + 0x4e0], ax
test ch, 1
je 0x48cd24
mov esi, dword [0x4a49e8]
mov ebx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x4fa]
movzx edx, word [ebx + 8]
add eax, edx
mov word [esi + 0x4fa], ax
test ch, 2
je 0x48cd49
mov esi, dword [0x4a49e8]
mov ebx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x4fc]
movzx edx, word [ebx + 8]
add eax, edx
mov word [esi + 0x4fc], ax
test ch, 4
je 0x48cd6e
mov esi, dword [0x4a49e8]
mov ebx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x500]
movzx edx, word [ebx + 8]
add eax, edx
mov word [esi + 0x500], ax
test ch, 8
je 0x48cd93
mov esi, dword [0x4a49e8]
mov ebx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x502]
movzx edx, word [ebx + 8]
add eax, edx
mov word [esi + 0x502], ax
test ch, 0x10
je 0x48cdb8
mov esi, dword [0x4a49e8]
mov ebx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x504]
movzx edx, word [ebx + 8]
add eax, edx
mov word [esi + 0x504], ax
test ch, 0x20
je 0x48cddd
mov esi, dword [0x4a49e8]
mov ebx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x506]
movzx edx, word [ebx + 8]
add eax, edx
mov word [esi + 0x506], ax
test ch, 0x40
je 0x48ce02
mov esi, dword [0x4a49e8]
mov ebx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x508]
movzx edx, word [ebx + 8]
add eax, edx
mov word [esi + 0x508], ax
and ecx, 0x10000
je 0x48ce3e
mov esi, dword [0x4a49e8]
mov ecx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x570]
movzx edx, word [ecx + 8]
add eax, edx
mov word [esi + 0x570], ax
movzx edx, word [ecx + 8]
movzx eax, word [esi + 0x578]
add eax, edx
mov word [esi + 0x578], ax
test byte [ebp - 0xaf], 0x80
mov edx, dword [ebp - 0xb0]
je 0x48ce62
mov esi, dword [0x4a49e8]
movzx eax, word [esi + 0x58a]
dec eax
mov word [esi + 0x58a], ax
test edx, 0x20000
je 0x48ce76
mov esi, dword [0x4a49e8]
inc dword [esi + 0x54c]
test edx, 0x40000
jne 0x48d120
mov esi, dword [0x4a49e8]
test edx, 0x80000
je 0x48ce96
inc dword [esi + 0x558]
test edx, 0x200000
je 0x48cead
movzx eax, word [esi + 0x588]
inc eax
mov word [esi + 0x588], ax
test edx, 0x800000
je 0x48cec4
movzx eax, word [esi + 0x58a]
inc eax
mov word [esi + 0x58a], ax
test edx, 0x2000000
je 0x48cedb
movzx eax, word [esi + 0x588]
dec eax
mov word [esi + 0x588], ax
test edx, 0x8000000
je 0x48cee9
inc dword [esi + 0x560]
test edx, 0x400000
je 0x48cef7
inc dword [esi + 0x564]
test edx, 0x10000000
je 0x48cf05
inc dword [esi + 0x568]
test dl, 0x10
je 0x48cf10
inc dword [esi + 0x51c]
test dl, 0x20
je 0x48cf1b
inc dword [esi + 0x520]
test dl, dl
jns 0x48cf25
inc dword [esi + 0x524]
test edx, 0x20000000
je 0x48cf33
dec dword [esi + 0x51c]
test edx, 0x40000000
je 0x48cf41
dec dword [esi + 0x520]
test edx, edx
js 0x48dca5
test dh, 2
je 0x48cf54
inc dword [esi + 0x528]
test dh, 4
je 0x48cf5f
inc dword [esi + 0x52c]
test dh, 8
je 0x48cf6a
inc dword [esi + 0x530]
test dh, 0x10
je 0x48cf75
inc dword [esi + 0x534]
test dh, 0x20
je 0x48cf80
inc dword [esi + 0x538]
test dl, 1
je 0x48cf8b
inc dword [esi + 0x53c]
test dl, 2
je 0x48cf96
inc dword [esi + 0x540]
test dl, 4
je 0x48cfa1
inc dword [esi + 0x544]
test dl, 8
je 0x48cfac
inc dword [esi + 0x548]
movzx edx, word [esi + 0x4fe]
mov ebx, dword [ebp - 0xe4]
cmp byte [esi + 0x126], 0
movzx eax, word [ebx + 0x14]
lea ecx, [edx + eax]
setne dl
mov word [esi + 0x4fe], cx
xor eax, eax
cmp edi, 0x18
sete al
test eax, edx
je 0x48cfeb
movzx eax, word [ebx + 0x14]
lea eax, [ecx + eax]
mov word [esi + 0x4fe], ax
lea eax, [edi - 0x1e]
cmp eax, 5
ja 0x48d003
mov edx, dword [ebp - 0xe4]
movsx eax, word [edx + 0xc]
add dword [ebp - 0xe8], eax
mov ecx, dword [ebp - 0xe4]
xor ebx, ebx
cmp byte [ecx + 0x28], 0
jne 0x48d019
jmp 0x48d047
mov esi, dword [0x4a49e8]
mov edx, dword [ebp - 0xe4]
mov cl, 1
movzx eax, byte [ebx + edx + 0x31]
movzx edx, byte [ebx + edx + 0x29]
inc ebx
lea edx, [edx + edx*4]
lea edx, [esi + edx*4]
mov byte [edx + eax + 0x3c0], cl
mov ecx, dword [ebp - 0xe4]
movzx eax, byte [ecx + 0x28]
cmp eax, ebx
jg 0x48d013
cmp edi, 0x18
je 0x48cb80
cmp edi, 0x20
je 0x48dcbc
cmp edi, 0x19
je 0x48cb80
cmp edi, 0x24
je 0x48cb80
cmp edi, 0x25
je 0x48cb80
mov esi, dword [0x4a49e8]
mov ecx, dword [ebp - 0xe4]
movzx eax, word [esi + 0x4fa]
movzx edx, word [ecx + 0x12]
add eax, edx
mov word [esi + 0x4fa], ax
movzx edx, word [ecx + 0x12]
movzx eax, word [esi + 0x4fc]
add eax, edx
mov word [esi + 0x4fc], ax
jmp 0x48cb80
cwde
xor ecx, ecx
neg eax
cmp eax, 0
jle 0x48c6fb
mov edi, 0x2aaaaaab
mov ebx, eax
mov edx, dword [ebp - 0xec]
inc ecx
lea eax, [edx + edx*4]
add eax, eax
mov dword [ebp - 0xf0], eax
imul edi
mov eax, dword [ebp - 0xf0]
sar edx, 1
sar eax, 0x1f
sub edx, eax
cmp ebx, ecx
mov dword [ebp - 0xec], edx
jg 0x48d0c2
jmp 0x48c6fb
and eax, 0xffffffdf
mov dword [esi + 0x4b4], eax
call fcn.0048b7c0
jmp 0x48c794
and eax, 0x7fffffff
mov dword [esi + 0x4b4], eax
call fcn.00491250
jmp 0x48c7ff
mov dword [esp], 0
call fcn.0048eb60
mov esi, dword [0x4a49e8]
mov edx, dword [ebp - 0xb0]
inc dword [esi + 0x554]
jmp 0x48ce88
mov esi, dword [0x4a49e8]
xor edi, edi
lea eax, [edi + edi*4]
xor ebx, ebx
lea edx, [eax*4]
mov esi, esi
lea edi, [edi]
lea eax, [edx + esi]
add eax, ebx
cmp byte [eax + 0x3c0], 0
jne 0x48d17b
mov byte [eax + 0xfc], 0
mov esi, dword [0x4a49e8]
inc ebx
cmp ebx, 0x13
jle 0x48d160
inc edi
cmp edi, 7
jle 0x48d14b
cmp byte [esi + 0x109], 0
je 0x48d19f
movzx eax, word [esi + 0x4e2]
inc eax
mov word [esi + 0x4e2], ax
cmp byte [esi + 0x117], 0
je 0x48d1b7
movzx eax, word [esi + 0x4e4]
inc eax
mov word [esi + 0x4e4], ax
cmp byte [esi + 0x12e], 0
je 0x48d1cf
movzx eax, word [esi + 0x4e4]
inc eax
mov word [esi + 0x4e4], ax
cmp byte [esi + 0x13e], 0
je 0x48d1e7
movzx eax, word [esi + 0x4e4]
inc eax
mov word [esi + 0x4e4], ax
cmp byte [esi + 0x155], 0
je 0x48d1ff
movzx eax, word [esi + 0x4e8]
inc eax
mov word [esi + 0x4e8], ax
cmp byte [esi + 0x16a], 0
je 0x48d217
movzx eax, word [esi + 0x4e6]
inc eax
mov word [esi + 0x4e6], ax
cmp byte [esi + 0x17b], 0
je 0x48d22f
movzx eax, word [esi + 0x4e8]
inc eax
mov word [esi + 0x4e8], ax
cmp byte [esi + 0x194], 0
je 0x48d247
movzx eax, word [esi + 0x4e8]
inc eax
mov word [esi + 0x4e8], ax
cmp byte [esi + 0x167], 0
je 0x48d2a2
movsx eax, word [esi + 0x30]
movsx edx, word [esi + 0x32]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.0048b330
cmp eax, 2
jg 0x48d287
movzx eax, word [esi + 0x4e2]
inc eax
mov word [esi + 0x4e2], ax
movzx eax, word [esi + 0x4e8]
inc eax
mov word [esi + 0x4e8], ax
movsx eax, word [esi + 0x30]
movsx edx, word [esi + 0x32]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.0048b330
dec eax
jle 0x48e01d
cmp byte [esi + 0x105], 0
je 0x48d2bc
movzx eax, word [esi + 0x50a]
sub eax, 3
mov word [esi + 0x50a], ax
cmp byte [esi + 0x116], 0
je 0x48d2d6
movzx eax, word [esi + 0x50c]
sub eax, 3
mov word [esi + 0x50c], ax
cmp byte [esi + 0x166], 0
je 0x48d2e5
inc dword [esi + 0x524]
movzx eax, word [esi + 0x1bc]
cmp ax, 0x31
jle 0x48dcdc
xor edi, edi
movzx eax, word [esi + edi*2 + 0x50a]
sub eax, 4
mov word [esi + edi*2 + 0x50a], ax
inc edi
cmp edi, 7
jle 0x48d2f8
cmp word [esi + 0x1c0], 0
je 0x48d357
movzx eax, word [esi + 0x4e2]
inc eax
mov word [esi + 0x4e2], ax
movzx eax, word [esi + 0x4e4]
dec eax
mov word [esi + 0x4e4], ax
movzx eax, word [esi + 0x4e6]
inc eax
mov word [esi + 0x4e6], ax
movzx eax, word [esi + 0x4e8]
dec eax
mov word [esi + 0x4e8], ax
cmp word [esi + 0x1c2], 0
je 0x48d378
movzx eax, word [esi + 0x4e2]
inc dword [esi + 0x53c]
add eax, 3
mov word [esi + 0x4e2], ax
cmp word [esi + 0x1c4], 0
je 0x48d399
movzx eax, word [esi + 0x4e4]
inc dword [esi + 0x540]
add eax, 3
mov word [esi + 0x4e4], ax
cmp word [esi + 0x1c6], 0
je 0x48d3ba
movzx eax, word [esi + 0x4e6]
inc dword [esi + 0x544]
add eax, 3
mov word [esi + 0x4e6], ax
cmp word [esi + 0x1c8], 0
je 0x48d3db
movzx eax, word [esi + 0x4e8]
inc dword [esi + 0x548]
add eax, 3
mov word [esi + 0x4e8], ax
cmp word [esi + 0x1aa], 0
je 0x48d3f4
movzx eax, word [esi + 0x588]
inc eax
mov word [esi + 0x588], ax
cmp word [esi + 0x1ac], 0
je 0x48d40d
movzx eax, word [esi + 0x588]
dec eax
mov word [esi + 0x588], ax
cmp word [esi + 0x1ca], 0
je 0x48d429
inc dword [esi + 0x554]
inc dword [esi + 0x52c]
inc dword [esi + 0x538]
cmp word [esi + 0x1d6], 0x3e7
jg 0x48d443
movzx eax, word [esi + 0x4e2]
dec eax
mov word [esi + 0x4e2], ax
cmp byte [esi + 0x161], 0
je 0x48d45b
movzx eax, word [esi + 0x58a]
dec eax
mov word [esi + 0x58a], ax
cmp byte [esi + 0x164], 0
je 0x48d476
inc dword [esi + 0x530]
inc dword [esi + 0x534]
inc dword [esi + 0x538]
xor edi, edi
movzx edx, word [esi + edi*2 + 0x4da]
movzx eax, word [esi + edi*2 + 0x3c]
add eax, edx
movzx edx, word [esi + edi*2 + 0x44]
add eax, edx
movzx edx, word [esi + edi*2 + 0x4e2]
add eax, edx
cmp ax, 0xfff7
jge 0x48dc81
mov edx, 0xfffffff7
mov word [esi + edi*2 + 0x4c0], dx
inc edi
cmp edi, 3
jle 0x48d478
mov ebx, dword [esi + 0x470]
call fcn.0048c1b0
cmp ebx, eax
jle 0x48dcd1
mov esi, dword [0x4a49e8]
movzx eax, word [esi + 0x588]
dec eax
mov word [esi + 0x588], ax
movsx eax, word [esi]
movsx ecx, word [esi + 2]
lea eax, [eax + eax*4]
mov edx, eax
shl edx, 5
add eax, edx
mov edx, dword [0x873700]
add eax, ecx
cmp byte [eax + edx], 2
je 0x48de01
cmp byte [esi + 0x1e0], 0
je 0x48d532
cmp byte [esi + 0x1a2], 5
je 0x48d521
movzx eax, word [esi + 0x588]
dec eax
mov word [esi + 0x588], ax
movzx eax, word [esi + 0x510]
add eax, 5
mov word [esi + 0x510], ax
call fcn.0048c240
test al, al
je 0x48dd10
mov esi, dword [0x4a49e8]
cmp byte [esi + 0x1e1], 0
jne 0x48d55d
movzx eax, word [esi + 0x588]
inc eax
mov word [esi + 0x588], ax
cmp word [esi + 0x588], 0
jle 0x48dea9
cmp word [esi + 0x588], 3
jle 0x48d581
mov eax, 3
mov word [esi + 0x588], ax
mov eax, dword [esi + 0x54c]
test eax, eax
je 0x48d59a
movzx eax, word [esi + 0x58a]
inc eax
mov word [esi + 0x58a], ax
mov eax, dword [ebp - 0xe8]
mov edx, 0x51eb851f
imul edx
mov eax, dword [ebp - 0xe8]
sar edx, 5
sar eax, 0x1f
sub edx, eax
movzx eax, word [esi + 0x500]
sub eax, edx
cmp byte [esi + 0x1e3], 0x64
mov word [esi + 0x500], ax
je 0x48d618
xor edx, edx
xor edi, edi
test edi, edi
jne 0x48dcb0
movzx eax, byte [esi + 0x1e3]
cmp eax, 0xa
ja case.0x48d5e6.2
jmp dword [eax*4 + 0x4bcc20]
add edx, 4
inc edi
cmp edi, 1
jle 0x48d5d2
cmp byte [esi + 0x1e4], 0x64
je 0x48d608
mov eax, edx
shr eax, 0x1f
add edx, eax
sar edx, 1
movzx eax, word [esi + 0x510]
sub eax, edx
mov word [esi + 0x510], ax
mov dword [esp], 0
call fcn.0048c0f0
movzx edx, word [esi + 0x50a]
add eax, edx
mov word [esi + 0x50a], ax
mov dword [esp], 1
call fcn.0048c0f0
movzx edx, word [esi + 0x50c]
add eax, edx
mov word [esi + 0x50c], ax
mov dword [esp], 2
call fcn.0048c0f0
movzx edx, word [esi + 0x50e]
add eax, edx
mov word [esi + 0x50e], ax
mov dword [esp], 3
call fcn.0048c0f0
movzx edx, word [esi + 0x510]
add eax, edx
mov word [esi + 0x510], ax
mov dword [esp], 4
call fcn.0048c0f0
movzx edx, word [esi + 0x512]
add eax, edx
mov word [esi + 0x512], ax
mov dword [esp], 5
call fcn.0048c0f0
movzx edx, word [esi + 0x514]
add eax, edx
mov word [esi + 0x514], ax
mov dword [esp], 6
call fcn.0048c0f0
movzx edx, word [esi + 0x516]
add eax, edx
mov word [esi + 0x516], ax
mov dword [esp], 7
call fcn.0048c0f0
movzx edx, word [esi + 0x518]
movzx ecx, word [esi + 0x508]
movzx ebx, word [esi + 0x4c6]
add eax, edx
movzx edx, word [esi + 0x4c2]
mov word [esi + 0x518], ax
mov word [esi + 0x4f2], bx
mov word [esi + 0x4f4], bx
mov word [esi + 0x4ea], dx
mov word [esi + 0x4ec], dx
mov word [esi + 0x4ee], dx
mov word [esi + 0x4f0], dx
movzx edx, word [esi + 0x5a]
mov word [esi + 0x4f6], bx
mov word [esi + 0x4f8], bx
add edx, ecx
add edx, ebx
add eax, edx
mov word [esi + 0x4d6], ax
mov dword [esp], 1
call fcn.00476320
test al, al
jne 0x48dd1b
mov dword [esp], 5
call fcn.00476320
test al, al
je 0x48d7a5
mov dword [esp], 7
mov ebx, dword [0x4a49e8]
mov eax, 5
mov dword [esp + 4], eax
call fcn.0048bd80
movzx edx, word [ebx + 0x516]
add eax, edx
mov word [ebx + 0x516], ax
mov dword [esp], 6
call fcn.00476320
test al, al
je 0x48d7e0
mov dword [esp], 7
mov ebx, dword [0x4a49e8]
mov eax, 6
mov dword [esp + 4], eax
call fcn.0048bd80
movzx edx, word [ebx + 0x514]
add eax, edx
mov word [ebx + 0x514], ax
mov dword [esp], 3
call fcn.00476320
test al, al
je 0x48dd05
mov esi, dword [0x4a49e8]
inc dword [esi + 0x558]
movzx edx, word [esi + 0x500]
mov ecx, dword [0x4f3410]
movzx eax, word [esi + 0x52]
add eax, edx
movzx edx, word [esi + 0x4f0]
add eax, edx
movzx edx, word [esi + 0x510]
add eax, edx
mov word [esi + 0x4ce], ax
movzx edx, word [esi + 0x502]
movzx eax, word [esi + 0x54]
add eax, edx
movzx edx, word [esi + 0x4f2]
add eax, edx
movzx edx, word [esi + 0x512]
add eax, edx
mov word [esi + 0x4d0], ax
movzx edx, word [esi + 0x504]
movzx eax, word [esi + 0x56]
add eax, edx
movzx edx, word [esi + 0x4f4]
add eax, edx
movzx edx, word [esi + 0x514]
add eax, edx
mov word [esi + 0x4d2], ax
movzx edx, word [esi + 0x506]
movzx eax, word [esi + 0x58]
add eax, edx
movzx edx, word [esi + 0x4f6]
add eax, edx
movzx edx, word [esi + 0x516]
add eax, edx
lea edx, [ecx + 0x5dc]
mov word [esi + 0x4d4], ax
mov ebx, edx
movzx eax, word [esi + 0x4fc]
mov dword [ebp - 0xe4], edx
movzx edx, word [edx + 0x12]
add eax, edx
mov word [esi + 0x4fc], ax
cmp word [ecx + 0x5dc], 0
je 0x48d928
mov byte [esi + 0x586], 0x11
xor edi, edi
mov esi, dword [0x4a49e8]
movzx ax, byte [ebx + 0x16]
mov word [esi + 0x57c], ax
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.00489d50
movzx edx, word [esi + 0x4fc]
movzx ax, al
mov ecx, dword [0x4f3410]
mov word [esi + 0x57e], ax
movzx eax, word [esi + 0x4e]
add eax, edx
movzx edx, word [esi + 0x4ec]
add eax, edx
movzx edx, word [esi + 0x50c]
add eax, edx
mov word [esi + 0x4ca], ax
movzx eax, word [esi + 0x4fa]
add ecx, 0x5a0
movzx edx, word [ecx + 0x12]
mov dword [ebp - 0xe4], ecx
add eax, edx
mov word [esi + 0x4fa], ax
mov dword [esp], ecx
call fcn.00489c40
mov ebx, eax
mov eax, dword [ebp - 0xe4]
mov dword [esp], eax
call fcn.00489c80
mov edx, dword [ebp - 0xe4]
add ebx, eax
mov dword [esp], edx
call fcn.00489cf0
lea edx, [ebx + eax]
movzx eax, word [esi + 0x50a]
lea eax, [edx + eax]
mov word [esi + 0x50a], ax
mov esi, dword [0x4a49e8]
cmp byte [esi + 0x113], 0
je 0x48d9bf
movzx eax, word [esi + 0x4e]
movzx edx, word [esi + 0x4c]
cmp ax, dx
jle 0x48d9bf
movsx edx, dx
cwde
sub eax, edx
mov edx, eax
shr edx, 0x1f
add eax, edx
movzx edx, word [esi + 0x50a]
sar eax, 1
add eax, edx
mov word [esi + 0x50a], ax
mov ecx, dword [ebp - 0xe4]
mov dword [esp], ecx
call fcn.00489a90
movzx ax, al
mov ebx, dword [ebp - 0xe4]
mov word [esi + 0x56e], ax
movzx eax, byte [esi + 0x105]
mov dword [esp], ebx
cmp al, 1
sbb eax, eax
not eax
and eax, 0xfffffffd
mov dword [esp + 4], eax
call fcn.00489c20
cmp byte [esi + 0x106], 0
movzx ax, al
mov word [esi + 0x572], ax
je 0x48da2f
mov eax, dword [0x4f3410]
movzx eax, byte [eax + 0x786]
cmp al, 0x22
setne dl
test al, al
setne al
movzx eax, al
test eax, edx
jne 0x48deba
cmp word [esi + 0x1b0], 0
jne 0x48da43
cmp word [esi + 0x1bc], 0x64
jle 0x48da67
movzx eax, word [esi + 0x4fe]
movzx edx, word [esi + 0x50]
add edx, eax
movzx eax, word [esi + 0x4ee]
add edx, eax
mov eax, 0xfffffffb
sub eax, edx
mov word [esi + 0x50e], ax
movzx edx, word [esi + 0x4fa]
movzx eax, word [esi + 0x4c]
add eax, edx
movzx edx, word [esi + 0x4ea]
add eax, edx
movzx edx, word [esi + 0x50a]
add eax, edx
mov word [esi + 0x4c8], ax
movzx edx, word [esi + 0x4fc]
movzx eax, word [esi + 0x4e]
add eax, edx
movzx edx, word [esi + 0x4ec]
add eax, edx
movzx edx, word [esi + 0x50c]
add eax, edx
mov word [esi + 0x4ca], ax
movzx edx, word [esi + 0x4fe]
movzx eax, word [esi + 0x50]
add eax, edx
movzx edx, word [esi + 0x4ee]
add eax, edx
movzx edx, word [esi + 0x50e]
add eax, edx
mov word [esi + 0x4cc], ax
mov eax, dword [ebp - 0xe4]
cmp word [eax], 0
jne 0x48dc40
xor edi, edi
movsx eax, word [esi + edi*2 + 0x44]
cmp eax, dword [ebp + edi*4 - 0x38]
je 0x48db04
or dword [esi + 0x4b8], 0x10
or dword [esi + 0x4bc], 4
movsx eax, word [esi + edi*2 + 0x4c0]
cmp eax, dword [ebp + edi*4 - 0x28]
je 0x48db29
or dword [esi + 0x4b8], 0x10
or dword [esi + 0x4bc], 4
cmp edi, 2
je 0x48dc99
inc edi
cmp edi, 3
jle 0x48daeb
movsx eax, word [esi + 0x4c6]
cmp eax, dword [ebp - 0x1c]
je 0x48db42
or dword [esi + 0x4b4], 0x20
mov eax, dword [ebp - 0xbc]
cmp dword [esi + 0x550], eax
je 0x48db5a
or dword [esi + 0x4b4], 0x10000000
mov edx, dword [ebp - 0xc0]
cmp dword [esi + 0x554], edx
je 0x48db72
or dword [esi + 0x4b4], 0x10000000
movsx eax, word [esi + 0x588]
cmp eax, dword [ebp - 0xb8]
je 0x48db8b
or dword [esi + 0x4b8], 0x200000
movsx eax, word [esi + 0x4c8]
or dword [esi + 0x4b8], 0x400000
cmp eax, dword [ebp - 0x58]
je 0x48ddb0
or dword [esi + 0x4b8], 2
or dword [esi + 0x4bc], 4
movsx eax, word [esi + 0x4ca]
cmp eax, dword [ebp - 0x54]
je 0x48dd81
or dword [esi + 0x4b8], 4
or dword [esi + 0x4bc], 4
movsx eax, word [esi + 0x4cc]
cmp eax, dword [ebp - 0x50]
je 0x48dd56
or dword [esi + 0x4b8], 0x20
mov ecx, dword [ebp - 0xdc]
mov ebx, dword [ebp - 0xe0]
or dword [esi + 0x4bc], 4
mov word [esi + 0x580], cx
mov word [esi + 0x582], bx
cmp word [0x4f2cc0], 0
jne 0x48c68d
cmp byte [esi + 0x14f], 0
jne 0x48dfbe
call fcn.0042c9e0
mov dword [esp], 0
call fcn.0046bab0
mov esi, dword [0x4a49e8]
jmp 0x48c68d
mov dword [esp], eax
lea edx, [ebp - 0xac]
lea ecx, [ebp - 0xb0]
mov dword [esp + 0xc], edx
lea ebx, [ebp - 0xb4]
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
call fcn.004629d0
mov esi, dword [0x4a49e8]
jmp 0x48dae9
add edx, 8
jmp case.0x48d5e6.2
add edx, 0xc
jmp case.0x48d5e6.2
cmp ax, 0x14
jle 0x48dc8c
mov eax, 0x14
mov word [esi + edi*2 + 0x4c0], ax
jmp 0x48d4af
or dword [esi + 0x4b4], 0x10
jmp 0x48db29
dec dword [esi + 0x524]
jmp 0x48cf49
movzx eax, byte [esi + 0x1e4]
jmp 0x48d5e1
mov ebx, dword [ebp - 0xe4]
cmp byte [ebx + 6], 0x22
jne 0x48cb80
jmp 0x48d062
mov esi, dword [0x4a49e8]
jmp 0x48d4dd
test ax, ax
je 0x48d311
xor edi, edi
movzx eax, word [esi + edi*2 + 0x50a]
sub eax, 2
mov word [esi + edi*2 + 0x50a], ax
inc edi
cmp edi, 7
jle 0x48dce7
jmp 0x48d311
mov esi, dword [0x4a49e8]
jmp 0x48d800
mov esi, dword [0x4a49e8]
jmp 0x48d55d
mov ebx, dword [0x4a49e8]
call fcn.00475d10
movzx edx, word [ebx + 0x50a]
add eax, edx
mov word [ebx + 0x50a], ax
mov ebx, dword [0x4a49e8]
call fcn.00475d10
movzx edx, word [ebx + 0x50c]
add eax, edx
mov word [ebx + 0x50c], ax
jmp 0x48d76a
movsx eax, word [esi + 0x580]
cmp eax, dword [ebp - 0xdc]
jne 0x48dbe1
movsx eax, word [esi + 0x582]
cmp eax, dword [ebp - 0xe0]
jne 0x48dbe1
jmp 0x48dc09
movsx eax, word [esi + 0x57c]
cmp eax, dword [ebp - 0xd4]
jne 0x48dbc3
movsx eax, word [esi + 0x57e]
cmp eax, dword [ebp - 0xd8]
jne 0x48dbc3
jmp 0x48dbd1
movsx eax, word [esi + 0x56e]
cmp eax, dword [ebp - 0xc4]
jne 0x48dba5
movsx eax, word [esi + 0x572]
cmp eax, dword [ebp - 0xc8]
jne 0x48dba5
movsx eax, word [esi + 0x576]
cmp eax, dword [ebp - 0xcc]
jne 0x48dba5
movsx eax, word [esi + 0x57a]
cmp eax, dword [ebp - 0xd0]
jne 0x48dba5
jmp 0x48dbb3
cmp byte [esi + 0x3bc], 0
jne 0x48d500
mov byte [esi + 0x1e1], 1
mov esi, dword [0x4a49e8]
movzx eax, word [esi + 0x588]
dec eax
mov word [esi + 0x588], ax
jmp 0x48d500
and eax, 0xefffffff
mov dword [esi + 0x4b4], eax
mov dword [esp], 0
call fcn.0045e5f0
mov esi, dword [0x4a49e8]
jmp 0x48c7f1
and eax, 0xcfffffff
mov dword [esi + 0x4b4], eax
mov dword [esp], 1
call fcn.0045e5f0
mov esi, dword [0x4a49e8]
jmp 0x48c7e0
and eax, 0xfffdffff
mov dword [esi + 0x4b4], eax
call fcn.004097d0
mov esi, dword [0x4a49e8]
jmp 0x48c7cf
and eax, 0xfffeffff
mov dword [esi + 0x4b4], eax
call fcn.00407520
mov esi, dword [0x4a49e8]
jmp 0x48c7be
mov eax, 1
mov word [esi + 0x588], ax
jmp 0x48d56b
mov dword [esp], ebx
call fcn.00489c40
mov edx, eax
movzx eax, word [ebx + 0x12]
lea ebx, [edx + eax]
mov eax, dword [ebp - 0xe4]
mov dword [esp], eax
call fcn.00489c80
mov edx, dword [ebp - 0xe4]
add ebx, eax
mov dword [esp], edx
call fcn.00489cf0
lea edx, [ebx + eax]
movzx eax, word [esi + 0x574]
sub eax, edx
mov word [esi + 0x574], ax
mov esi, dword [0x4a49e8]
cmp byte [esi + 0x105], 0
je 0x48df1c
movzx eax, word [esi + 0x574]
add eax, 3
mov word [esi + 0x574], ax
mov ecx, dword [0x4f3410]
add ecx, 0x780
mov dword [ebp - 0xe4], ecx
mov dword [esp], ecx
call fcn.00489c40
mov ebx, dword [ebp - 0xe4]
mov edx, eax
movzx eax, word [ebx + 0x12]
lea ebx, [edx + eax]
mov eax, dword [ebp - 0xe4]
mov dword [esp], eax
call fcn.00489c80
mov edx, dword [ebp - 0xe4]
add ebx, eax
mov dword [esp], edx
call fcn.00489cf0
lea edx, [ebx + eax]
movzx eax, word [esi + 0x574]
mov ecx, dword [ebp - 0xe4]
mov ebx, 0xfffffffd
lea eax, [edx + eax - 3]
mov word [esi + 0x574], ax
mov esi, dword [0x4a49e8]
mov dword [esp], ecx
call fcn.00489a90
movzx ax, al
mov word [esi + 0x576], ax
mov dword [esp + 4], ebx
mov ebx, dword [ebp - 0xe4]
mov dword [esp], ebx
call fcn.00489c20
movzx ax, al
mov word [esi + 0x57a], ax
jmp 0x48da2f
call fcn.0042c820
jmp 0x48dc24
mov dword [esp + 8], edx
xor eax, eax
mov esi, 0x50
mov dword [esp + 0x10], eax
xor edi, edi
lea eax, [ebp - 0xa8]
mov dword [esp], eax
mov ebx, 0x20
mov dword [esp + 4], esi
mov dword [esp + 0xc], edi
call fcn.00462aa0
mov dword [esp], str.You_can_no_longer_wield_both_weapons.
call fcn.004811d0
mov dword [esp + 4], ebx
mov ecx, dword [ebp - 0xe4]
mov dword [esp], ecx
call fcn.004199c0
mov esi, dword [0x4a49e8]
jmp 0x48c8ce
movzx eax, word [esi + 0x4e2]
inc eax
mov word [esi + 0x4e2], ax
movzx eax, word [esi + 0x4e8]
inc eax
mov word [esi + 0x4e8], ax
jmp 0x48d2a2