Function at 0x4da250
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x578fa6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x5b8
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
mov dx, word [ebx]
push esi
mov esi, ecx
mov ecx, eax
and eax, 0xffffff
sub eax, 2
sar ecx, 0x18
push edi
add ebx, 2
cmp cl, 7
mov edi, eax
mov dword [esp + 0x1c], esi
mov byte [esp + 0x10], cl
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], edi
ja case.0x4dc87b.50178
movzx eax, dx
cmp eax, 0x8500
jg 0x4db2f4
je 0x4db25c
cmp eax, 0x8005
jg 0x4daa3a
je 0x4da994
cmp eax, 0x4003
jg 0x4da7e2
je 0x4da667
cmp eax, 0x4001
jg 0x4da430
je 0x4da3cd
sub eax, 3
je 0x4da364
dec eax
jne case.0x4dc87b.50178
movzx eax, byte [ebx]
mov ecx, dword [0x8927a4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4 + 0x245f1]
push eax
push eax
movzx eax, byte [esp + 0x18]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*4 + 0x245f1]
push eax
push 0x282
push 0x897640
call fcn.0044dea0
push eax
lea ecx, [esp + 0x50]
push ecx
call fcn.0055e68c
mov edx, dword [esi]
add esp, 0x14
push 6
push 2
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call dword [edx + 0x2c]
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movzx eax, byte [ebx]
mov ecx, dword [0x8927a4]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*4 + 0x245f1]
push eax
push eax
movzx eax, byte [esp + 0x18]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4 + 0x245f1]
push ecx
push 0x260
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x50]
push edx
call fcn.0055e68c
mov eax, dword [esi]
add esp, 0x14
push 6
push 2
lea ecx, [esp + 0x48]
push ecx
mov ecx, esi
call dword [eax + 0x2c]
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [0x8927a4]
movzx esi, byte [esp + 0x10]
add ecx, 0x1aa2c
call fcn.004086e0
cmp esi, eax
je case.0x4dc87b.50178
mov edx, dword [0x8927a4]
push 1
push esi
push edx
call fcn.00428f40
test eax, eax
je case.0x4dc87b.50178
mov dl, byte [ebx]
xor ecx, ecx
cmp dl, 1
sete cl
lea edi, [eax + 0xf0]
mov eax, ecx
call fcn.00417b40
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp eax, 0x4002
jne case.0x4dc87b.50178
mov edx, dword [0x8927a4]
movzx eax, cl
mov cl, byte [eax + edx + 0x265c1]
test cl, cl
mov dword [esp + 0xc], eax
je case.0x4dc87b.50178
imul eax, eax, 0xd
lea ecx, [edx + eax + 0x2664a]
push edx
mov dword [esp + 0x18], eax
call fcn.00430700
cmp eax, 0xffffffff
jne case.0x4dc87b.50178
mov byte [esp + 0x1c0], 0
xor eax, eax
mov ecx, 0xff
lea edi, [esp + 0x1c1]
rep stosd dword es:[edi], eax
mov ecx, dword [ebp + 0xc]
stosw word es:[edi], ax
mov edx, ecx
stosb byte es:[edi], al
shr ecx, 2
mov esi, ebx
lea edi, [esp + 0x1c0]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push 0
and ecx, 3
push 0x8a062c
lea ebx, [esp + 0x1c8]
rep movsb byte es:[edi], byte [esi]
call fcn.00451580
push eax
call fcn.0053f260
mov eax, dword [0x8927a4]
mov ecx, dword [esp + 0x14]
add esp, 8
lea ecx, [eax + ecx*8 + 0x26580]
call fcn.00406a60
test al, al
push 0
je 0x4da509
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edx, dword [0x8927a4]
add eax, 0x12c
push eax
mov al, byte [esp + 0x18]
push ecx
push esi
push 0x11
push edx
call fcn.00426b60
jmp 0x4da534
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
add ecx, 0x12c
push ecx
mov ecx, dword [0x8927a4]
push edx
push eax
mov al, byte [esp + 0x20]
push 0
push ecx
call fcn.00426b60
mov esi, dword [ebp + 8]
mov ebx, dword [0x8927a4]
mov edx, dword [esp + 0x14]
mov edi, dword [ebp + 0xc]
push 1
push 0
push esi
lea eax, [ebx + edx + 0x2664a]
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [ebx + eax*8]
lea edx, [eax + ecx + 0x265e2]
push edx
push 0
push ebx
mov eax, edi
call fcn.00423aa0
xor ecx, ecx
test edi, edi
setl cl
dec ecx
and ecx, edi
mov eax, ecx
shr ecx, 2
lea edi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 0xc]
mov byte [esp + ecx + 0x40], 0
lea ecx, [ebx + esi*8 + 0x26580]
call fcn.00406a60
mov ecx, dword [0x8927a4]
test al, al
setne dl
lea eax, [esp + 0x40]
add ecx, 0x801e8
push edx
push eax
push esi
push ecx
call fcn.00447850
mov edx, dword [0x8927a4]
push 1
push esi
push edx
call fcn.00428f40
mov ecx, dword [0x8927a4]
mov edi, eax
add ecx, 0x2458c
mov byte [edi + 0x90], 1
call fcn.004086e0
cmp eax, 3
jne case.0x4dc87b.50178
xor eax, eax
mov dword [esp + 0x14], eax
mov ecx, dword [0x8927a4]
push eax
push 0x186a6
add ecx, 0x80214
call fcn.0053bdc0
mov esi, eax
test esi, esi
je 0x4da642
lea ecx, [edi + 0xa0]
call fcn.004086e0
lea ecx, [esi + 0x40]
mov ebx, eax
call fcn.004086e0
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x96
jge 0x4da642
lea eax, [esp + 0x40]
push eax
add esi, 0xc4
push esi
call fcn.0041a880
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 8
mov dword [esp + 0x14], eax
jl 0x4da5f1
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [0x8927a4]
movzx esi, cl
mov al, byte [esi + edx + 0x265c1]
test al, al
mov dword [esp + 0xc], esi
je case.0x4dc87b.50178
mov eax, esi
imul eax, eax, 0xd
lea ecx, [edx + eax + 0x2664a]
push edx
mov dword [esp + 0x18], eax
call fcn.00430700
cmp eax, 0xffffffff
jne case.0x4dc87b.50178
mov eax, dword [0x8927a4]
mov cl, byte [esi + eax + 0x265da]
cmp cl, byte [eax + 0x1aa34]
jne case.0x4dc87b.50178
mov byte [esp + 0x1c0], 0
xor eax, eax
mov ecx, 0xff
lea edi, [esp + 0x1c1]
rep stosd dword es:[edi], eax
mov ecx, dword [ebp + 0xc]
stosw word es:[edi], ax
mov edx, ecx
stosb byte es:[edi], al
shr ecx, 2
mov esi, ebx
lea edi, [esp + 0x1c0]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push 0
and ecx, 3
push 0x8a062c
lea ebx, [esp + 0x1c8]
rep movsb byte es:[edi], byte [esi]
call fcn.00451580
push eax
call fcn.0053f260
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edx, dword [0x8927a4]
mov al, byte [esp + 0x18]
add esp, 8
push 0
add ecx, 0x12c
push ecx
push edi
push esi
push 7
push edx
call fcn.00426b60
mov ebx, dword [0x8927a4]
mov eax, dword [esp + 0x14]
push 1
push 0
lea ecx, [ebx + eax + 0x2664a]
mov eax, dword [esp + 0x14]
push esi
lea edx, [ebx + eax*8]
push ecx
lea eax, [eax + edx + 0x265e2]
push eax
push 7
push ebx
mov eax, edi
call fcn.00423aa0
xor ecx, ecx
test edi, edi
setl cl
mov eax, dword [ebp + 0xc]
dec ecx
and ecx, edi
mov edx, ecx
shr ecx, 2
lea edi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0xc]
lea ecx, [ebx + esi*8 + 0x26580]
mov byte [esp + eax + 0x40], 0
call fcn.00406a60
test al, al
mov eax, dword [0x8927a4]
setne cl
lea edx, [esp + 0x40]
add eax, 0x801e8
push ecx
push edx
push esi
push eax
call fcn.00447850
push 1
push esi
mov ecx, dword [0x8927a4]
push ecx
call fcn.00428f40
mov byte [eax + 0x90], 1
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
sub eax, 0x4004
je 0x4da8e6
dec eax
je 0x4da84b
dec eax
jne case.0x4dc87b.50178
mov ecx, dword [0x8927a4]
movzx esi, byte [esp + 0x10]
add ecx, 0x1aa2c
call fcn.004086e0
cmp esi, eax
je case.0x4dc87b.50178
mov edx, dword [0x8927a4]
push 1
push esi
push edx
call fcn.00428f40
mov ecx, eax
movsx eax, word [ebx]
lea edi, [ecx + 0x198]
call fcn.00417b40
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [0x8927a4]
movzx esi, byte [esp + 0x10]
add ecx, 0x1aa2c
call fcn.004086e0
cmp esi, eax
je case.0x4dc87b.50178
mov eax, dword [0x8927a4]
push 1
push esi
push eax
call fcn.00428f40
mov cl, byte [ebx]
mov esi, eax
mov eax, dword [esi + 0x24]
cmp eax, 5
mov byte [esp + 0x1b], cl
je case.0x4dc87b.50178
cmp eax, 6
je case.0x4dc87b.50178
cmp eax, 8
je case.0x4dc87b.50178
cmp eax, 0xa
je case.0x4dc87b.50178
mov cl, byte [ebx + 1]
xor eax, eax
cmp cl, 1
sete al
lea edi, [esi + 0xf0]
call fcn.00417b40
cmp byte [esp + 0x1b], 1
sete al
lea edi, [esi + 0x2c4]
call fcn.00417d80
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [0x8927a4]
movzx eax, cl
mov cl, byte [eax + edx + 0x265c1]
test cl, cl
mov dword [esp + 0xc], eax
je case.0x4dc87b.50178
imul eax, eax, 0xd
lea ecx, [eax + edx + 0x2664a]
push edx
call fcn.00430700
cmp eax, 0xffffffff
jne case.0x4dc87b.50178
xor ecx, ecx
lea eax, [edi - 1]
test eax, eax
setl cl
lea esi, [ebx + 1]
lea edi, [esp + 0x40]
dec ecx
and ecx, eax
mov eax, dword [ebp + 0xc]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0xc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x8927a4]
lea ecx, [ecx + edx*8 + 0x26580]
mov byte [esp + eax + 0x3f], 0
call fcn.00406a60
movzx edx, byte [ebx]
test al, al
setne al
lea ecx, [esp + 0x40]
add edx, 8
push eax
mov eax, dword [0x8927a4]
push ecx
push edx
add eax, 0x801e8
push eax
call fcn.00447850
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [0x8927a4]
movzx esi, byte [esp + 0x10]
add ecx, 0x1aa2c
call fcn.004086e0
cmp esi, eax
je case.0x4dc87b.50178
mov ecx, dword [0x8927a4]
push 1
push esi
push ecx
call fcn.00428f40
mov esi, eax
test esi, esi
je case.0x4dc87b.50178
lea ecx, [esi + 0x29c]
call fcn.00406a60
test al, al
je case.0x4dc87b.50178
lea ecx, [esi + 0x2b4]
call fcn.00406a60
test al, al
je case.0x4dc87b.50178
mov eax, dword [esi + 0x24]
cmp eax, 5
je case.0x4dc87b.50178
cmp eax, 6
je case.0x4dc87b.50178
movzx eax, word [ebx]
lea edi, [esi + 0xd0]
call fcn.00417b40
movzx eax, word [ebx + 2]
lea edi, [esi + 0xd8]
call fcn.00417b40
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp eax, 0x8405
jg 0x4db006
je 0x4daf6a
cmp eax, 0x8403
jg 0x4daef3
je 0x4dac73
cmp eax, 0x8006
je 0x4dab10
cmp eax, 0x8402
jne case.0x4dc87b.50178
mov ecx, dword [0x8927a4]
movzx esi, byte [esp + 0x10]
add ecx, 0x1aa2c
call fcn.004086e0
cmp esi, eax
je case.0x4dc87b.50178
mov edx, dword [0x8927a4]
push 1
push esi
push edx
call fcn.00428f40
mov esi, eax
test esi, esi
je case.0x4dc87b.50178
movzx eax, word [ebx]
lea edi, [esi + 0xd0]
call fcn.00417b40
lea edi, [esi + 0xa0]
mov ecx, eax
call fcn.00417af0
movzx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0xd8]
call fcn.00417b40
lea edi, [esi + 0xa8]
mov ecx, eax
call fcn.00417af0
mov cl, byte [ebx + 2]
xor eax, eax
cmp cl, 1
sete al
lea edi, [esi + 0xf0]
call fcn.00417b40
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movzx eax, byte [esp + 0x10]
mov ecx, dword [0x8927a4]
push 1
push eax
push ecx
call fcn.00428f40
mov esi, eax
test esi, esi
je case.0x4dc87b.50178
movzx eax, word [ebx]
lea edi, [esi + 0xd0]
call fcn.00417b40
lea edi, [esi + 0xa0]
mov ecx, eax
call fcn.00417af0
movzx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0xd8]
call fcn.00417b40
lea edi, [esi + 0xa8]
mov ecx, eax
call fcn.00417af0
mov cl, byte [ebx + 3]
mov dl, byte [ebx + 2]
add ebx, 2
xor eax, eax
cmp cl, 1
sete al
lea edi, [esi + 0xf0]
mov byte [esp + 0x1b], dl
call fcn.00417b40
cmp byte [esp + 0x1b], 2
lea edi, [esi + 0x2cc]
sete al
call fcn.00417d80
mov ecx, edi
call fcn.00406a60
test al, al
jne 0x4dabb9
cmp byte [esp + 0x1b], 1
sete al
lea edi, [esi + 0x2c4]
call fcn.00417d80
mov ecx, dword [0x8927a4]
xor eax, eax
mov ax, word [esi + 0x468]
push eax
push ecx
call fcn.004262d0
test al, al
jne 0x4dac50
movzx eax, byte [esp + 0x1b]
sub eax, 0
je 0x4dac2d
dec eax
je 0x4dac0a
dec eax
jne case.0x4dc87b.50178
mov edx, dword [esi]
push str.bsfire
mov ecx, esi
call dword [edx + 4]
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi]
push str.bfire2
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [esi]
push str.bfire1
mov ecx, esi
call dword [edx + 4]
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi]
push str.bifire
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movzx ecx, byte [esp + 0x10]
mov edx, dword [0x8927a4]
push 1
push ecx
push edx
call fcn.00428f40
test eax, eax
mov dword [esp + 0xc], eax
je case.0x4dc87b.50178
movzx eax, word [ebx]
mov edi, dword [esp + 0xc]
add edi, 0xd0
call fcn.00417b40
mov edi, dword [esp + 0xc]
add edi, 0xa0
mov ecx, eax
call fcn.00417af0
movzx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0xd8
call fcn.00417b40
mov edi, dword [esp + 0xc]
add edi, 0xa8
mov ecx, eax
call fcn.00417af0
mov al, byte [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
xor ecx, ecx
inc ebx
cmp al, 1
sete cl
add edi, 0xf0
mov eax, ecx
call fcn.00417b40
mov al, byte [ebx]
mov edi, dword [esp + 0xc]
inc ebx
cmp al, 1
sete al
add edi, 0x2c4
call fcn.00417d80
movzx eax, word [ebx]
mov edi, dword [esp + 0xc]
add edi, 0x1a8
call fcn.00417b40
movzx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x254
call fcn.00417b40
mov dl, byte [ebx + 2]
mov ecx, dword [esp + 0xc]
add ebx, 2
mov byte [ecx + 0x200], dl
movsx eax, word [ebx + 1]
inc ebx
lea edi, [ecx + 0x1c0]
call fcn.00417b40
movsx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x1c8
call fcn.00417b40
movsx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x1d0
call fcn.00417b40
movsx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x1d8
call fcn.00417b40
movsx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x1e0
call fcn.00417b40
movsx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x1e8
call fcn.00417b40
mov edi, dword [0x8927a4]
movsx eax, word [ebx + 2]
add ebx, 2
add edi, 0x26fd4
call fcn.00417b40
mov edi, dword [0x8927a4]
movsx eax, word [ebx + 2]
add ebx, 2
add edi, 0x26fdc
call fcn.00417b40
mov al, byte [ebx + 2]
mov edi, dword [0x8927a4]
add ebx, 2
cmp al, 1
sete al
add edi, 0x26ffc
call fcn.00417d80
mov eax, dword [0x8927a4]
inc ebx
push ebx
add eax, 0x801e8
call fcn.0044d3b0
call fcn.0044c820
cmp al, 1
jne 0x4dae62
mov eax, dword [esp + 0xc]
mov ecx, dword [str.ifire]
add eax, 0x4dc
mov dword [eax], ecx
mov dx, word [0x592a74]
mov word [eax + 4], dx
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
push str.ifire
call dword [eax + 4]
mov ecx, dword [0x8927a4]
mov edi, dword [esi + 0x10a4]
add ecx, 0x1aa2c
call fcn.004086e0
cmp edi, eax
je 0x4dc828
mov eax, dword [0x8927a4]
mov cl, byte [edi + eax + 0x247c6]
cmp cl, byte [eax + 0x1aa34]
je 0x4daeb3
mov edx, dword [eax + 0x272d8]
mov dword [edx + 0x414], 1
mov ecx, dword [esi + 0x10a4]
mov dl, byte [ecx + eax + 0x247c6]
cmp dl, byte [eax + 0x1aa34]
jne case.0x4dc87b.50178
mov eax, dword [eax + 0x272d8]
mov dword [eax + 0x414], 2
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp eax, 0x8404
jne case.0x4dc87b.50178
movzx ecx, word [ebx]
mov edx, dword [esi + 0x98]
mov dword [esi + edx*4 + 0x9c], ecx
movzx eax, word [ebx + 2]
mov ecx, dword [esi + 0x98]
add ebx, 2
mov dword [esi + ecx*4 + 0x29c], eax
movzx edx, byte [ebx + 2]
mov eax, dword [esi + 0x98]
add ebx, 2
mov dword [esi + eax*4 + 0x49c], edx
movzx ecx, byte [ebx + 1]
mov edx, dword [esi + 0x98]
push esi
mov dword [esi + edx*4 + 0x69c], ecx
call fcn.004f1020
inc dword [esi + 0x98]
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movzx esi, byte [esp + 0x10]
mov eax, esi
call fcn.0044c500
mov eax, esi
call fcn.0044c540
mov eax, esi
call fcn.0044c560
mov edi, dword [0x8927a4]
add edi, 0x55de0
xor al, al
call fcn.00417d80
mov eax, dword [0x8927a4]
push esi
push eax
call fcn.00428ff0
mov ecx, dword [0x8927a4]
mov ecx, dword [ecx + 0x272d8]
add ecx, 0x2cc
call fcn.00406a60
mov edx, dword [0x8927a4]
mov ecx, dword [edx + 0x272d8]
add ecx, 0x2cc
call fcn.00406a60
test al, al
jne case.0x4dc87b.50178
mov eax, dword [0x8927a4]
mov ecx, dword [eax + 0x272d8]
add ecx, 0x2c4
call fcn.00406a60
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
sub eax, 0x8406
je 0x4db16e
dec eax
je 0x4db084
dec eax
jne case.0x4dc87b.50178
movzx ecx, word [ebx]
mov edx, dword [esi + 0x89c]
mov dword [esi + edx*4 + 0x8a0], ecx
movzx eax, word [ebx + 2]
mov ecx, dword [esi + 0x89c]
add ebx, 2
mov dword [esi + ecx*4 + 0xaa0], eax
mov edx, dword [esi + 0x89c]
mov eax, dword [ebx + 2]
movzx ecx, byte [esp + 0x10]
mov dword [esi + edx*4 + 0xea0], eax
mov edx, dword [esi + 0x89c]
push esi
mov dword [esi + edx*4 + 0xca0], ecx
call fcn.004f10d0
inc dword [esi + 0x89c]
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movzx esi, byte [esp + 0x10]
mov eax, dword [0x8927a4]
push 1
push esi
push eax
call fcn.00428f40
mov ecx, dword [0x8927a4]
add ecx, 0x2458c
mov edi, eax
call fcn.004086e0
cmp eax, 1
je 0x4db135
mov ecx, dword [0x8927a4]
add ecx, 0x2458c
call fcn.004086e0
cmp eax, 3
je 0x4db135
mov ecx, dword [0x8927a4]
add ecx, 0x2458c
call fcn.004086e0
cmp eax, 4
je 0x4db135
test edi, edi
je 0x4db135
cmp dword [edi + 0x24], 0xe
jne 0x4db135
movzx eax, byte [ebx]
dec eax
je 0x4db107
dec eax
je 0x4db100
dec eax
jne case.0x4dc87b.50178
mov ecx, 0x5f0774
jmp 0x4db10c
mov ecx, 0x5f074c
jmp 0x4db10c
mov ecx, 0x5f0724
call fcn.004086e0
mov ecx, eax
mov eax, dword [0x8927a4]
push esi
call fcn.00432260
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa38
call fcn.004086e0
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movzx edi, byte [esp + 0x10]
mov ecx, dword [0x8927a4]
push 1
push edi
push ecx
call fcn.00428f40
mov ecx, dword [0x8927a4]
add ecx, 0x2458c
mov esi, eax
call fcn.004086e0
cmp eax, 1
je 0x4db135
mov ecx, dword [0x8927a4]
add ecx, 0x2458c
call fcn.004086e0
cmp eax, 3
je 0x4db135
mov ecx, dword [0x8927a4]
add ecx, 0x2458c
call fcn.004086e0
cmp eax, 4
je 0x4db135
test esi, esi
je 0x4db135
cmp dword [esi + 0x24], 0xe
jne 0x4db135
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
call fcn.004086e0
cmp edi, eax
je case.0x4dc87b.50178
movzx eax, word [ebx]
lea edi, [esi + 0xd0]
call fcn.00417b40
lea edi, [esi + 0xa0]
mov ecx, eax
call fcn.00417af0
movzx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0xd8]
call fcn.00417b40
lea edi, [esi + 0xa8]
mov ecx, eax
call fcn.00417af0
mov cl, byte [ebx + 2]
xor eax, eax
cmp cl, 1
sete al
lea edi, [esi + 0xf0]
call fcn.00417b40
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov al, byte [ebx]
movzx edx, al
mov eax, dword [0x8927a4]
push 1
push edx
push eax
inc ebx
call fcn.00428f40
mov esi, eax
test esi, esi
je case.0x4dc87b.50178
lea ecx, [esi + 0x29c]
call fcn.00406a60
test al, al
jne case.0x4dc87b.50178
movzx eax, word [ebx]
lea edi, [esi + 0xd0]
call fcn.00417b40
lea edi, [esi + 0xa0]
mov ecx, eax
call fcn.00417af0
movzx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0xd8]
call fcn.00417b40
lea edi, [esi + 0xa8]
mov ecx, eax
call fcn.00417af0
mov cl, byte [ebx + 2]
xor eax, eax
cmp cl, 1
sete al
lea edi, [esi + 0xf0]
call fcn.00417b40
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp eax, 0xc400
jg 0x4dc855
je 0x4dc575
sub eax, 0xc300
cmp eax, 9
ja case.0x4dc87b.50178
jmp dword [eax*4 + 0x4dd194]
mov ecx, dword [0x8927a4]
add ecx, 0x2722c
call fcn.00406a60
cmp al, 1
jne 0x4db38a
mov ecx, dword [0x8927a4]
add ecx, 0x1aa38
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
cmp eax, esi
jne case.0x4dc87b.50178
mov ebx, 0xc40b
mov esi, 0x8977e8
call fcn.00458260
push esi
or ecx, 0xffffffff
call fcn.00458440
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [0x8927a4]
add edi, 0x804f8
xor al, al
call fcn.00417d80
mov al, byte [esi + 0x11dc]
test al, al
mov dword [esi + 0x1308], 0xffffffff
mov byte [esi + 0x14a8], 0
je 0x4db3c6
push esi
call fcn.004f6670
test al, al
jne case.0x4dc87b.50178
mov al, byte [esi + 0x14a8]
test al, al
jne 0x4db3e6
xor edx, edx
mov byte [esi + 0x14a8], 1
mov dl, byte [ebx]
lea ecx, [ebx + 1]
push ecx
push edx
push esi
call fcn.004f5260
push 0xc300
push 0x8977e8
call fcn.00458ac0
push 0xc306
push 0x8977e8
call fcn.00458ac0
push 0xc40b
push 0x8977e8
call fcn.00458ac0
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movzx eax, byte [ebx]
lea edi, [esi + eax*8 + 0x1320]
xor al, al
call fcn.00417d80
movzx eax, byte [ebx]
cmp eax, 0xf
ja case.0x4dc87b.50178
movzx ecx, byte [eax + 0x4dd1d4]
jmp dword [ecx*4 + 0x4dd1bc]
push esi
mov dword [esi + 0x10bc], 3
call fcn.004f4290
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push esi
mov dword [esi + 0x10bc], 4
call fcn.004f4290
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [0x8927a4]
mov edi, dword [edx + 0x272d8]
add edi, 0x580
xor al, al
call fcn.00417d80
mov eax, dword [esp + 0x1c]
lea esi, [ebx + 1]
mov ebx, eax
mov dword [eax + 0x10bc], 0
lea edi, [ebx + 0x12bc]
mov ecx, 0x10
push ebx
rep movsd dword es:[edi], dword [esi]
call fcn.004f5750
push ebx
call fcn.004f4290
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [0x8927a4]
mov edi, dword [ecx + 0x272d8]
add edi, 0x580
xor al, al
call fcn.00417d80
mov ecx, dword [esp + 0x1c]
mov al, byte [ecx + 0x10a4]
inc ebx
lea edi, [ecx + 0x12bc]
mov esi, ebx
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
movzx edx, word [ebx + 0x40]
mov ecx, dword [esp + 0x1c]
add ebx, 0x40
movzx edi, al
push 1
mov dword [ecx + 0x10a8], edx
mov edx, dword [0x8927a4]
push edi
push edx
add ebx, 2
call fcn.00428f40
mov esi, eax
test esi, esi
je 0x4db5f3
cmp dword [esi + 0x24], 0xe
je 0x4db5d5
lea ecx, [esi + 0x2d4]
call fcn.00406a60
cmp al, 1
jne 0x4db5d5
lea ecx, [esi + 0x22c]
call fcn.004086e0
lea ecx, [esi + 0x214]
mov dword [esp + 0x14], eax
call fcn.004086e0
mov ecx, dword [esp + 0x14]
add ecx, eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
lea ecx, [esp + 0x14]
add eax, edx
push ecx
lea ecx, [esi + 0x21c]
mov dword [esp + 0x18], eax
call fcn.00408710
test al, al
mov ecx, esi
je 0x4db5cb
mov edx, dword [esi]
push str.wnormal
call dword [edx + 4]
jmp 0x4db5d5
mov eax, dword [esi]
push str.normal
call dword [eax + 4]
mov eax, dword [esi + 0x408]
cmp eax, 0xffffffff
je 0x4db5f3
push eax
call fcn.0053f390
add esp, 4
mov dword [esi + 0x408], 0xffffffff
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 0x10a8]
mov edx, dword [0x8927a4]
push ecx
lea edi, [edx + edi*8 + 0x29350]
call fcn.00417c50
lea edi, [esi + 0x1238]
mov ecx, 8
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.0044b290
mov esi, dword [esp + 0x1c]
push esi
call fcn.004f5750
lea ecx, [esp + 0x14]
mov eax, 0x898574
mov dword [esp + 0x14], 0xc300
call fcn.00459a40
lea ecx, [esp + 0x14]
mov eax, 0x898574
mov dword [esp + 0x14], 0xc306
call fcn.00459a40
lea ecx, [esp + 0x14]
mov eax, 0x898574
mov dword [esp + 0x14], 0xc40b
call fcn.00459a40
push 0x8005
push 0x8977e8
call fcn.00458ac0
push 0x8006
push 0x8977e8
call fcn.00458ac0
push 0xc306
push 0x8977e8
call fcn.00458ac0
push 0xc400
push 0x8977e8
call fcn.00458ac0
push 0xc401
push 0x8977e8
call fcn.00458ac0
push 0x8403
push 0x8977e8
call fcn.00458ac0
push 0x8405
push 0x8977e8
call fcn.00458ac0
push 0xc409
push 0x8977e8
call fcn.00458ac0
push esi
mov byte [esi + 0x14a8], 0
call fcn.004ef470
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [0x8927a4]
mov edi, dword [eax + 0x272d8]
add edi, 0x580
xor al, al
call fcn.00417d80
call fcn.0044b290
lea esi, [ebx + 1]
mov ebx, dword [esp + 0x1c]
lea edi, [ebx + 0x12bc]
mov ecx, 0x10
push ebx
rep movsd dword es:[edi], dword [esi]
call fcn.004f5750
lea ecx, [esp + 0x14]
mov eax, 0x898574
mov dword [esp + 0x14], 0xc300
call fcn.00459a40
lea ecx, [esp + 0x14]
mov eax, 0x898574
mov dword [esp + 0x14], 0xc306
call fcn.00459a40
lea ecx, [esp + 0x14]
mov eax, 0x898574
mov dword [esp + 0x14], 0xc40b
call fcn.00459a40
push 0x8005
push 0x8977e8
call fcn.00458ac0
push 0x8006
push 0x8977e8
call fcn.00458ac0
push 0xc306
push 0x8977e8
call fcn.00458ac0
push 0xc400
push 0x8977e8
call fcn.00458ac0
push 0xc401
push 0x8977e8
call fcn.00458ac0
push 0x8403
push 0x8977e8
call fcn.00458ac0
push 0x8405
push 0x8977e8
call fcn.00458ac0
push 0xc409
push 0x8977e8
call fcn.00458ac0
push ebx
call fcn.004ef470
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movzx eax, byte [esp + 0x10]
movzx ecx, word [ebx + 1]
mov edx, dword [0x8927a4]
inc ebx
push 1
push eax
push edx
mov dword [esi + 0x10a8], ecx
add ebx, 2
call fcn.00428f40
mov edi, eax
test edi, edi
mov dword [esp + 0xc], edi
je 0x4db8fd
cmp dword [edi + 0x24], 0xe
je 0x4db8bd
lea ecx, [edi + 0x2d4]
call fcn.00406a60
cmp al, 1
jne 0x4db8bd
lea ecx, [edi + 0x22c]
call fcn.004086e0
lea ecx, [edi + 0x214]
mov dword [esp + 0x14], eax
call fcn.004086e0
mov ecx, dword [esp + 0x14]
add ecx, eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
lea ecx, [esp + 0x14]
add eax, edx
push ecx
lea ecx, [edi + 0x21c]
mov dword [esp + 0x18], eax
call fcn.00408710
test al, al
mov ecx, edi
je 0x4db8b3
mov edx, dword [edi]
push str.wnormal
call dword [edx + 4]
jmp 0x4db8bd
mov eax, dword [edi]
push str.normal
call dword [eax + 4]
mov eax, dword [edi + 0x408]
cmp eax, 0xffffffff
je 0x4db8db
push eax
call fcn.0053f390
add esp, 4
mov dword [edi + 0x408], 0xffffffff
mov edi, dword [esp + 0xc]
add edi, 0x29c
xor al, al
call fcn.00417d80
mov edi, dword [esp + 0xc]
add edi, 0x2b4
xor al, al
call fcn.00417d80
movzx eax, byte [esp + 0x10]
mov ecx, dword [0x8927a4]
lea ecx, [ecx + eax*8 + 0x29350]
call fcn.004086e0
cmp eax, 0xffffffff
je 0x4db947
mov esi, dword [esi + 0x10a8]
cmp esi, 0xea60
je 0x4db947
cmp esi, 0xffff
je 0x4db947
movzx eax, byte [esp + 0x10]
mov edx, dword [0x8927a4]
push esi
lea edi, [edx + eax*8 + 0x29350]
call fcn.00417c50
mov edi, dword [esp + 0x1c]
add edi, 0x1238
mov ecx, 8
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [0x8927a4]
add edi, 0x80298
mov al, 1
call fcn.00417d80
mov edi, dword [0x8927a4]
add edi, 0x802a0
xor al, al
call fcn.00417d80
mov eax, dword [0x8927a4]
mov ecx, dword [eax + 0x272d8]
mov edx, dword [esp + 0x1c]
mov byte [ecx + 0x3e4], 1
mov byte [edx + 0x14a8], 0
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [0x8927a4]
add edi, 0x804f8
xor al, al
call fcn.00417d80
movzx edi, byte [esp + 0x10]
mov eax, dword [0x8927a4]
push 1
push edi
push eax
mov dword [esi + 0x1308], 0xffffffff
call fcn.00428f40
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov dword [esp + 0xc], eax
call fcn.004086e0
cmp edi, eax
mov edi, dword [esp + 0xc]
je 0x4dba70
test edi, edi
je 0x4dba73
movzx eax, word [ebx]
add edi, 0xd0
call fcn.00417b40
mov edi, dword [esp + 0xc]
add edi, 0xa0
mov ecx, eax
call fcn.00417af0
movzx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0xd8
call fcn.00417b40
mov edi, dword [esp + 0xc]
add edi, 0xa8
mov ecx, eax
call fcn.00417af0
mov al, byte [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
xor ecx, ecx
inc ebx
cmp al, 1
sete cl
add edi, 0xf0
mov eax, ecx
call fcn.00417b40
mov edi, dword [esp + 0xc]
jmp 0x4dba73
add ebx, 5
movzx edx, word [ebx + 1]
inc ebx
add ebx, 2
test edi, edi
mov dword [esi + 0x10a8], edx
je 0x4dbaa3
mov eax, dword [edi + 0x408]
cmp eax, 0xffffffff
je 0x4dbaa3
push eax
call fcn.0053f390
add esp, 4
mov dword [edi + 0x408], 0xffffffff
cmp dword [esi + 0x10a8], 0xffff
jne 0x4dbac9
movzx eax, byte [esp + 0x10]
mov ecx, dword [0x8927a4]
lea edi, [ecx + eax*8 + 0x29350]
or eax, 0xffffffff
call fcn.00417b40
movzx eax, byte [esp + 0x10]
mov edx, dword [0x8927a4]
lea ecx, [edx + eax*8 + 0x29350]
call fcn.004086e0
cmp eax, 0xffffffff
je 0x4dbb0b
mov esi, dword [esi + 0x10a8]
cmp esi, 0xea60
je 0x4dbb0b
movzx eax, byte [esp + 0x10]
mov ecx, dword [0x8927a4]
push esi
lea edi, [ecx + eax*8 + 0x29350]
call fcn.00417c50
mov eax, dword [esp + 0x1c]
lea edi, [eax + 0x1238]
mov ecx, 8
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x1228]
mov al, 1
call fcn.00417d80
mov edi, dword [0x8927a4]
add edi, 0x80298
mov al, 1
call fcn.00417d80
mov edi, dword [0x8927a4]
add edi, 0x802a0
xor al, al
call fcn.00417d80
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa38
mov esi, eax
call fcn.004086e0
cmp esi, eax
jne case.0x4dc87b.50178
mov ebx, 0xc309
mov esi, 0x8977e8
call fcn.00458260
mov edx, dword [0x89835c]
mov al, byte [esp + 0x10]
mov ecx, dword [ebp + 8]
mov byte [edx + 0x89815c], al
mov esi, dword [0x89835c]
inc esi
push ecx
mov edx, edi
mov eax, 0x8977e8
mov dword [0x89835c], esi
call fcn.004582a0
push eax
or ecx, 0xffffffff
call fcn.00458440
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov cl, byte [ebx]
mov dl, byte [ebx + 1]
inc ebx
mov byte [esp + 0x1b], dl
mov edx, dword [esi + 0x10b4]
add ebx, 4
xor eax, eax
test edx, edx
mov byte [esp + 0x10], cl
jle 0x4dbc28
lea ecx, [ecx]
cmp byte [esi + eax + 0x10ac], cl
je case.0x4dc87b.50178
mov edx, dword [esi + 0x10b4]
inc eax
cmp eax, edx
jl 0x4dbc10
movzx eax, byte [esp + 0x10]
push 1
push eax
mov eax, dword [0x8927a4]
push eax
call fcn.00428f40
mov edi, eax
test edi, edi
mov dword [esp + 0xc], edi
je case.0x4dc87b.50178
push 0xffffffffffffffff
mov eax, 1
mov ecx, edi
call fcn.00476e30
lea ecx, [edi + 0x4d4]
call fcn.00406a60
test al, al
jne case.0x4dc87b.50178
cmp dword [edi + 0x24], 0xe
je case.0x4dc87b.50178
movzx ebx, byte [ebx]
mov ecx, dword [0x8927a4]
push 1
push ebx
push ecx
call fcn.00428f40
test eax, eax
mov dword [esp + 0x1c], eax
je 0x4dc33c
mov eax, dword [0x8927a4]
mov cl, byte [eax + 0x24574]
test cl, cl
je 0x4dc33c
mov cl, byte [esi + 0x11dc]
test cl, cl
jne 0x4dc33c
lea ecx, [eax + 0x2458c]
call fcn.004086e0
cmp eax, 3
je 0x4dc33c
movzx edi, byte [esp + 0x1b]
mov edx, edi
and edx, 0xf000
cmp edx, 0xf000
je 0x4dc33c
lea ecx, [esp + 0x20]
call fcn.00417a30
mov al, byte [esp + 0x1b]
and edi, 0xf
test al, 0x10
mov dword [esp + 0x5cc], 0
je 0x4dc0df
dec edi
je 0x4dbf86
dec edi
je 0x4dbe6b
dec edi
jne 0x4dc0bf
movzx eax, byte [esp + 0x10]
mov ecx, dword [0x8927a4]
push 1
lea edi, [ecx + eax*8 + 0x270cc]
call fcn.00417ca0
mov eax, 0x1151510e
lea ecx, [esp + 0x20]
call fcn.00417cf0
movzx eax, byte [esp + 0x10]
mov edx, dword [0x8927a4]
shl eax, 6
lea ecx, [eax + edx + 0x2672c]
call fcn.004086e0
mov ecx, 0x5f0774
mov edi, eax
call fcn.004086e0
lea ecx, [esp + 0x20]
add edi, eax
call fcn.004086e0
imul edi, eax
mov ecx, 0x5f0774
call fcn.004086e0
mov ecx, eax
mov eax, edi
cdq
idiv ecx
lea edi, [esp + 0x20]
call fcn.00417b40
mov ecx, edi
call fcn.004086e0
mov ecx, eax
mov eax, dword [0x8927a4]
push ebx
call fcn.00432260
mov ebx, dword [esp + 0xc]
push 0xffffffffffffffff
lea ecx, [ebx + 0xa8]
call fcn.004086e0
push eax
lea ecx, [ebx + 0xa0]
call fcn.004086e0
mov edx, dword [0x8927a4]
push eax
add edx, 0x801e8
push edx
call fcn.004448c0
mov ecx, edi
call fcn.004086e0
movzx ecx, byte [esp + 0x10]
push eax
mov eax, dword [0x8927a4]
movzx ecx, byte [ecx + eax + 0x265da]
lea edi, [eax + ecx*8 + 0x80a28]
call fcn.00417c50
lea ecx, [esp + 0x20]
call fcn.004086e0
push eax
add ebx, 0x389
push ebx
push 0x264
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x4c]
push edx
call fcn.0055e68c
mov eax, dword [esi]
add esp, 0x10
push 2
push 3
lea ecx, [esp + 0x48]
push ecx
mov ecx, esi
call dword [eax + 0x2c]
mov eax, dword [0x8927a4]
mov edx, dword [eax + 0x272d8]
cmp dword [edx + 0x414], 3
jne 0x4dc0bf
lea ecx, [esp + 0x38]
push ecx
add eax, 0x80970
push eax
call fcn.00417b70
lea ecx, [esp + 0x38]
call fcn.00417ad0
jmp 0x4dc0bf
mov edx, dword [0x8927a4]
push 2
lea edi, [edx + ebx*8 + 0x270cc]
call fcn.00417ca0
mov eax, 0x1151510e
lea ecx, [esp + 0x20]
call fcn.00417cf0
mov ecx, dword [0x8927a4]
mov eax, ebx
shl eax, 6
lea ecx, [eax + ecx + 0x2672c]
call fcn.004086e0
mov ecx, 0x5f0774
mov edi, eax
call fcn.004086e0
lea ecx, [esp + 0x20]
add edi, eax
call fcn.004086e0
imul edi, eax
mov ecx, 0x5f0774
call fcn.004086e0
mov ecx, eax
mov eax, edi
cdq
idiv ecx
lea edi, [esp + 0x20]
call fcn.00417b40
mov ecx, edi
call fcn.004086e0
mov ecx, eax
mov eax, dword [0x8927a4]
push ebx
call fcn.00432260
mov edi, dword [esp + 0x1c]
push 0xfffffffffffffffc
lea ecx, [edi + 0xa8]
call fcn.004086e0
push eax
lea ecx, [edi + 0xa0]
call fcn.004086e0
mov edx, dword [0x8927a4]
push eax
add edx, 0x801e8
push edx
call fcn.004448c0
lea ecx, [esp + 0x20]
call fcn.004086e0
push eax
mov eax, dword [0x8927a4]
movzx ecx, byte [ebx + eax + 0x265da]
lea edi, [eax + ecx*8 + 0x80a28]
call fcn.00417c50
lea ecx, [esp + 0x20]
call fcn.004086e0
mov edx, dword [esp + 0x1c]
push eax
add edx, 0x389
push edx
push 0x263
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.0055e68c
mov edx, dword [esi]
add esp, 0x10
push 2
push 3
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call dword [edx + 0x2c]
jmp 0x4dc0bf
mov ecx, dword [0x8927a4]
push 1
lea edi, [ecx + ebx*8 + 0x270cc]
call fcn.00417c50
mov eax, 0xeeaeaea4
lea ecx, [esp + 0x20]
call fcn.00417cf0
mov eax, dword [0x8927a4]
mov edx, ebx
shl edx, 6
lea ecx, [edx + eax + 0x2672c]
call fcn.004086e0
mov ecx, 0x5f0774
mov edi, eax
call fcn.004086e0
lea ecx, [esp + 0x20]
add edi, eax
call fcn.004086e0
imul edi, eax
mov ecx, 0x5f0774
call fcn.004086e0
mov ecx, eax
mov eax, edi
cdq
idiv ecx
lea edi, [esp + 0x20]
call fcn.00417b40
mov ecx, edi
call fcn.004086e0
mov ecx, eax
mov eax, dword [0x8927a4]
push ebx
call fcn.00432260
mov ecx, edi
call fcn.004086e0
mov edx, dword [0x8927a4]
push eax
lea edi, [edx + ebx*8 + 0x2708c]
call fcn.00417c50
mov edi, dword [esp + 0x1c]
push 1
lea ecx, [edi + 0xa8]
call fcn.004086e0
push eax
lea ecx, [edi + 0xa0]
call fcn.004086e0
push eax
mov eax, dword [0x8927a4]
add eax, 0x801e8
push eax
call fcn.004448c0
lea ecx, [esp + 0x20]
call fcn.004086e0
push eax
mov eax, dword [0x8927a4]
movzx ecx, byte [ebx + eax + 0x265da]
lea edi, [eax + ecx*8 + 0x80a28]
call fcn.00417c50
lea ecx, [esp + 0x20]
call fcn.004086e0
mov edx, dword [esp + 0x1c]
push eax
add edx, 0x389
push edx
push 0x262
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.0055e68c
mov edx, dword [esi]
add esp, 0x10
push 3
push 4
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call dword [edx + 0x2c]
lea edi, [esi + ebx*8 + 0x11e8]
call fcn.00418350
mov ebx, dword [esp + 0xc]
lea edi, [ebx + 0xa8]
mov eax, 0x2710
call fcn.00417b40
mov byte [ebx + 0x388], 1
jmp 0x4dc328
dec edi
je 0x4dc207
dec edi
jne 0x4dc328
mov ecx, dword [0x8927a4]
push 2
lea edi, [ecx + ebx*8 + 0x270cc]
call fcn.00417ca0
mov eax, 0x1151510e
lea ecx, [esp + 0x20]
call fcn.00417cf0
mov eax, dword [0x8927a4]
mov edx, ebx
shl edx, 6
lea ecx, [edx + eax + 0x2672c]
call fcn.004086e0
mov ecx, 0x5f0774
mov edi, eax
call fcn.004086e0
lea ecx, [esp + 0x20]
add edi, eax
call fcn.004086e0
imul edi, eax
mov ecx, 0x5f0774
call fcn.004086e0
mov ecx, eax
mov eax, edi
cdq
idiv ecx
lea edi, [esp + 0x20]
call fcn.00417b40
mov ecx, edi
call fcn.004086e0
mov ecx, eax
mov eax, dword [0x8927a4]
push ebx
call fcn.00432260
mov edi, dword [esp + 0x1c]
push 0xfffffffffffffffc
lea ecx, [edi + 0xa8]
call fcn.004086e0
push eax
lea ecx, [edi + 0xa0]
call fcn.004086e0
mov edx, dword [0x8927a4]
push eax
add edx, 0x801e8
push edx
call fcn.004448c0
lea ecx, [esp + 0x20]
call fcn.004086e0
push eax
mov eax, dword [0x8927a4]
movzx ecx, byte [ebx + eax + 0x265da]
lea edi, [eax + ecx*8 + 0x80a28]
call fcn.00417c50
lea ecx, [esp + 0x20]
call fcn.004086e0
mov edx, dword [esp + 0x1c]
push eax
add edx, 0x389
push edx
push 0x266
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.0055e68c
mov edx, dword [esi]
add esp, 0x10
push 2
push 3
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call dword [edx + 0x2c]
jmp 0x4dc328
mov ecx, dword [0x8927a4]
push 1
lea edi, [ecx + ebx*8 + 0x270cc]
call fcn.00417c50
mov eax, 0xeeaeaea4
lea ecx, [esp + 0x20]
call fcn.00417cf0
mov eax, dword [0x8927a4]
mov edx, ebx
shl edx, 6
lea ecx, [edx + eax + 0x2672c]
call fcn.004086e0
mov ecx, 0x5f0774
mov edi, eax
call fcn.004086e0
lea ecx, [esp + 0x20]
add edi, eax
call fcn.004086e0
imul edi, eax
mov ecx, 0x5f0774
call fcn.004086e0
mov ecx, eax
mov eax, edi
cdq
idiv ecx
lea edi, [esp + 0x20]
call fcn.00417b40
mov ecx, edi
call fcn.004086e0
mov ecx, eax
mov eax, dword [0x8927a4]
push ebx
call fcn.00432260
mov edi, dword [esp + 0x1c]
push 1
lea ecx, [edi + 0xa8]
call fcn.004086e0
push eax
lea ecx, [edi + 0xa0]
call fcn.004086e0
mov edx, dword [0x8927a4]
push eax
add edx, 0x801e8
push edx
call fcn.004448c0
lea ecx, [esp + 0x20]
call fcn.004086e0
push eax
mov eax, dword [0x8927a4]
movzx ecx, byte [ebx + eax + 0x265da]
lea edi, [eax + ecx*8 + 0x80a28]
call fcn.00417c50
lea ecx, [esp + 0x20]
call fcn.004086e0
mov edx, dword [esp + 0x1c]
push eax
add edx, 0x389
push edx
push 0x265
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.0055e68c
mov edx, dword [esi]
add esp, 0x10
push 3
push 4
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call dword [edx + 0x2c]
lea edi, [esi + ebx*8 + 0x11e8]
call fcn.00418350
lea ecx, [esp + 0x20]
mov dword [esp + 0x5cc], 0xffffffff
call fcn.00417ad0
mov cl, byte [esp + 0x10]
mov edi, esi
call fcn.004f4000
mov ecx, dword [0x8927a4]
add ecx, 0x2458c
call fcn.004086e0
cmp eax, 1
je 0x4dc377
mov ecx, dword [0x8927a4]
add ecx, 0x2458c
call fcn.004086e0
cmp eax, 4
jne case.0x4dc87b.50178
movzx eax, byte [esp + 0x10]
mov ecx, dword [0x8927a4]
mov al, byte [eax + ecx + 0x265da]
test al, al
jne 0x4dc40d
mov edi, dword [esi]
push 8
push 3
push 0x25c
push 0x897640
call fcn.0044dea0
push eax
mov ecx, esi
call dword [edi + 0x2c]
mov edi, dword [0x8927a4]
add edi, 0x57f1c
call fcn.004326b0
mov ecx, dword [0x8927a4]
lea edx, [esp + 0x14]
push edx
add ecx, 0x57f1c
mov dword [esp + 0x18], 0
call fcn.00408710
test al, al
je case.0x4dc87b.50178
mov edi, dword [0x8927a4]
add edi, 0x57f1c
xor eax, eax
call fcn.00417b40
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp al, 1
jne case.0x4dc87b.50178
mov edi, dword [esi]
push 8
push 3
push 0x25d
push 0x897640
call fcn.0044dea0
push eax
mov ecx, esi
call dword [edi + 0x2c]
mov edi, dword [0x8927a4]
add edi, 0x57f24
call fcn.004326b0
mov ecx, dword [0x8927a4]
lea eax, [esp + 0x14]
push eax
add ecx, 0x57f24
mov dword [esp + 0x18], 0
call fcn.00408710
test al, al
je case.0x4dc87b.50178
mov edi, dword [0x8927a4]
add edi, 0x57f24
xor eax, eax
call fcn.00417b40
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [0x8927a4]
add edi, 0x57f14
mov al, 1
mov byte [esi + 0x10c0], 0
call fcn.00417d80
mov ecx, dword [0x8927a4]
movzx eax, byte [ecx + 0x2457b]
dec eax
je 0x4dc4d9
dec eax
je 0x4dc4cd
dec eax
jne 0x4dc4e3
mov dword [ecx + 0x7f758], 0x28
jmp 0x4dc4e3
mov dword [ecx + 0x7f758], 0x26
jmp 0x4dc4e3
mov dword [ecx + 0x7f758], 0x27
push 1
push str.sudden.mp3
call fcn.0053f2e0
mov ecx, dword [0x8927a4]
add esp, 8
push 6
add ecx, 0x801e8
push ecx
call fcn.00447970
mov edi, dword [esi]
push 6
push 2
push 0x267
push 0x897640
call fcn.0044dea0
push eax
mov ecx, esi
call dword [edi + 0x2c]
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [0x8927a4]
push 3
add edi, 0x292f8
call fcn.00417c50
mov edi, dword [esp + 0x1c]
add edi, 0x1238
mov ecx, 8
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movzx eax, byte [esp + 0x10]
mov edx, dword [0x8927a4]
push 1
push eax
push edx
call fcn.00428f40
mov edi, dword [0x8927a4]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x10]
add edi, 0x272f0
call fcn.00417b40
mov eax, dword [esp + 0xc]
test eax, eax
je case.0x4dc87b.50178
movzx eax, word [ebx]
mov edi, dword [esp + 0xc]
add edi, 0xd0
call fcn.00417b40
mov edi, dword [esp + 0xc]
add edi, 0xa0
mov ecx, eax
call fcn.00417af0
movzx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0xd8
call fcn.00417b40
mov edi, dword [esp + 0xc]
add edi, 0xa8
mov ecx, eax
call fcn.00417af0
mov al, byte [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
xor ecx, ecx
inc ebx
cmp al, 1
sete cl
add edi, 0xf0
mov eax, ecx
call fcn.00417b40
mov al, byte [ebx]
mov edi, dword [esp + 0xc]
add edi, 0x2c4
inc ebx
cmp al, 1
sete al
call fcn.00417d80
mov edi, dword [esp + 0xc]
add edi, 0x2cc
xor al, al
call fcn.00417d80
movsx eax, word [ebx]
mov edi, dword [esp + 0xc]
add edi, 0x1a8
call fcn.00417b40
movzx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x254
call fcn.00417b40
mov dl, byte [ebx + 2]
mov ecx, dword [esp + 0xc]
add ebx, 2
mov byte [ecx + 0x200], dl
movsx eax, word [ebx + 1]
inc ebx
lea edi, [ecx + 0x1c0]
call fcn.00417b40
movsx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x1c8
call fcn.00417b40
movsx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x1d0
call fcn.00417b40
movsx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x1d8
call fcn.00417b40
movsx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x1e0
call fcn.00417b40
movsx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x1e8
call fcn.00417b40
add ebx, 2
mov edi, dword [0x8927a4]
movsx eax, word [ebx]
add edi, 0x26fd4
call fcn.00417b40
mov edi, dword [0x8927a4]
movsx eax, word [ebx + 2]
add ebx, 2
add edi, 0x26fdc
call fcn.00417b40
mov al, byte [ebx + 2]
mov edi, dword [0x8927a4]
add ebx, 2
cmp al, 1
sete al
add edi, 0x26ffc
call fcn.00417d80
mov eax, dword [0x8927a4]
inc ebx
push ebx
add eax, 0x801e8
call fcn.0044d3b0
mov eax, dword [esp + 0xc]
mov byte [eax + 0x4c0], 0
lea edi, [eax + 0x2b4]
xor al, al
call fcn.00417d80
call fcn.0044c820
cmp al, 1
jne 0x4dc7de
mov esi, dword [esp + 0xc]
lea ecx, [esi + 0x2c4]
call fcn.00406a60
add esi, 0x4dc
test al, al
je 0x4dc7b5
mov eax, dword [str.fire2]
mov dword [esi], eax
mov cx, word [0x592a84]
mov word [esi + 4], cx
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [str.fire1]
mov dword [esi], edx
mov ax, word [0x592a7c]
mov word [esi + 4], ax
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [esp + 0xc]
lea ecx, [edi + 0x2c4]
call fcn.00406a60
test al, al
mov ecx, edi
je 0x4dc7ff
mov edx, dword [edi]
push str.fire2
call dword [edx + 4]
jmp 0x4dc809
mov eax, dword [edi]
push str.fire1
call dword [eax + 4]
mov ecx, dword [0x8927a4]
mov edi, dword [esi + 0x10a4]
add ecx, 0x1aa2c
call fcn.004086e0
cmp edi, eax
jne 0x4dae8f
mov ecx, dword [0x8927a4]
mov edx, dword [ecx + 0x272d8]
mov dword [edx + 0x414], 3
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp eax, 0xc801
jg 0x4dd0e8
je 0x4dcf75
sub eax, 0xc401
cmp eax, 0xb
ja case.0x4dc87b.50178
movzx ecx, byte [eax + 0x4dd1f8]
jmp dword [ecx*4 + 0x4dd1e4]
movzx eax, byte [esp + 0x10]
mov edx, dword [0x8927a4]
push 1
push eax
push edx
call fcn.00428f40
mov edi, dword [0x8927a4]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x10]
add edi, 0x272f0
call fcn.00417b40
mov eax, dword [esp + 0xc]
test eax, eax
je case.0x4dc87b.50178
movzx eax, word [ebx]
mov edi, dword [esp + 0xc]
add edi, 0xd0
call fcn.00417b40
mov edi, dword [esp + 0xc]
add edi, 0xa0
mov ecx, eax
call fcn.00417af0
movzx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0xd8
call fcn.00417b40
mov edi, dword [esp + 0xc]
add edi, 0xa8
mov ecx, eax
call fcn.00417af0
mov dl, byte [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
xor eax, eax
cmp dl, 1
sete al
add edi, 0xf0
call fcn.00417b40
mov edi, dword [esp + 0xc]
add edi, 0x2cc
mov al, 1
add ebx, 2
call fcn.00417d80
mov edi, dword [esp + 0xc]
add edi, 0x564
xor eax, eax
call fcn.00417b40
movsx eax, word [ebx]
mov edi, dword [esp + 0xc]
add edi, 0x1a8
call fcn.00417b40
movzx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x254
call fcn.00417b40
mov al, byte [ebx + 2]
mov ecx, dword [esp + 0xc]
add ebx, 2
mov byte [ecx + 0x200], al
movsx eax, word [ebx + 1]
inc ebx
lea edi, [ecx + 0x1c0]
call fcn.00417b40
movsx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x1c8
call fcn.00417b40
movsx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x1d0
call fcn.00417b40
movsx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x1d8
call fcn.00417b40
movsx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x1e0
call fcn.00417b40
movsx eax, word [ebx + 2]
mov edi, dword [esp + 0xc]
add ebx, 2
add edi, 0x1e8
call fcn.00417b40
mov ecx, dword [0x8927a4]
add ebx, 2
mov dword [ecx + 0x55dd8], 1
mov dword [ecx + 0x55ddc], 0
movsx eax, word [ebx]
lea edi, [ecx + 0x26fd4]
call fcn.00417b40
mov edi, dword [0x8927a4]
movsx eax, word [ebx + 2]
add ebx, 2
add edi, 0x26fdc
call fcn.00417b40
mov al, byte [ebx + 2]
mov edi, dword [0x8927a4]
add ebx, 2
cmp al, 1
sete al
add edi, 0x26ffc
call fcn.00417d80
mov eax, dword [0x8927a4]
inc ebx
push ebx
add eax, 0x801e8
call fcn.0044d3b0
mov eax, dword [esp + 0xc]
mov byte [eax + 0x4c0], 0
lea edi, [eax + 0x2b4]
xor al, al
call fcn.00417d80
call fcn.0044c820
cmp al, 1
mov ecx, dword [esp + 0xc]
jne 0x4dcac2
mov edx, dword [str.sfire]
add ecx, 0x4dc
mov dword [ecx], edx
mov ax, word [0x592a8c]
mov word [ecx + 4], ax
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [ecx]
push str.sfire
call dword [edx + 4]
mov ecx, dword [0x8927a4]
mov edi, dword [esi + 0x10a4]
add ecx, 0x1aa2c
call fcn.004086e0
cmp edi, eax
mov eax, dword [0x8927a4]
jne 0x4dcb13
mov ecx, dword [eax + 0x272d8]
mov dword [ecx + 0x414], 3
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov dl, byte [edi + eax + 0x247c6]
cmp dl, byte [eax + 0x1aa34]
je 0x4dcb32
mov ecx, dword [eax + 0x272d8]
mov dword [ecx + 0x414], 1
mov edx, dword [esi + 0x10a4]
mov cl, byte [edx + eax + 0x247c6]
cmp cl, byte [eax + 0x1aa34]
jne case.0x4dc87b.50178
mov edx, dword [eax + 0x272d8]
mov dword [edx + 0x414], 2
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esp + 0x10]
push ebx
push eax
push esi
call fcn.004f0880
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
call fcn.004086e0
movzx ecx, byte [esp + 0x10]
cmp ecx, eax
je case.0x4dc87b.50178
mov eax, dword [ebx]
cmp eax, 0x20
jle case.0x4dc87b.50178
mov ecx, dword [0x8927a4]
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 2]
add ebx, 2
push eax
push 0x186ac
add ecx, 0x80214
mov dword [esp + 0x1c], edx
call fcn.0053bdc0
mov ebx, eax
test ebx, ebx
je case.0x4dc87b.50178
lea edi, [ebx + 0xc0]
mov eax, esi
call fcn.00417b40
mov eax, dword [esp + 0x14]
lea edi, [ebx + 0xc8]
call fcn.00417b40
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [0x8927a4]
add ecx, 0x2458c
call fcn.004086e0
cmp eax, 3
je 0x4dcefa
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
lea eax, [esi + 0x11e8]
mov dword [esp + 0xc], eax
mov eax, 0xffffee18
sub eax, esi
mov dword [esp + 0x20], eax
jmp 0x4dcc60
mov ecx, dword [esp + 0xc]
call fcn.004086e0
cmp eax, 2
jl 0x4dced0
mov edi, dword [esp + 0xc]
xor eax, eax
call fcn.00417b40
mov ecx, dword [esp + 0x10]
mov edx, dword [0x8927a4]
push 1
push ecx
push edx
call fcn.00428f40
mov ebx, eax
test ebx, ebx
je 0x4dced0
mov eax, dword [esp + 0x20]
mov edx, dword [0x8927a4]
mov ecx, edi
add eax, ecx
push 4
lea edi, [eax + edx + 0x270cc]
call fcn.00417c50
lea ecx, [esp + 0x28]
call fcn.00417a30
mov eax, 0xeeaeaf34
lea ecx, [esp + 0x28]
mov dword [esp + 0x5cc], 1
call fcn.00417cf0
mov eax, dword [0x8927a4]
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax + 0x2672c]
call fcn.004086e0
mov ecx, 0x5f0774
mov edi, eax
call fcn.004086e0
lea ecx, [esp + 0x28]
add edi, eax
call fcn.004086e0
imul edi, eax
mov ecx, 0x5f0774
call fcn.004086e0
mov ecx, eax
mov eax, edi
cdq
idiv ecx
lea edi, [esp + 0x28]
call fcn.00417b40
mov ecx, edi
call fcn.004086e0
mov edi, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [0x8927a4]
push edi
call fcn.00432260
push 4
lea ecx, [ebx + 0xa8]
call fcn.004086e0
push eax
lea ecx, [ebx + 0xa0]
call fcn.004086e0
mov edx, dword [0x8927a4]
push eax
add edx, 0x801e8
push edx
call fcn.004448c0
lea ecx, [esp + 0x28]
call fcn.004086e0
push eax
mov eax, dword [0x8927a4]
movzx ecx, byte [edi + eax + 0x265da]
lea edi, [eax + ecx*8 + 0x80a28]
call fcn.00417c50
lea ecx, [esp + 0x28]
add ebx, 0x389
call fcn.004086e0
push eax
push ebx
push 0x274
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x14c]
push edx
call fcn.0055e68c
mov eax, dword [esi]
add esp, 0x10
push 3
push 4
lea ecx, [esp + 0x148]
push ecx
mov ecx, esi
call dword [eax + 0x2c]
mov edi, dword [esp + 0x10]
push edi
push 0
push esi
call fcn.004f6a80
mov edx, dword [0x8927a4]
push 7
add edx, 0x801e8
push edx
call fcn.00447970
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
call fcn.004086e0
cmp edi, eax
jne 0x4dcebc
mov eax, dword [0x8927a4]
mov ecx, dword [eax + 0x244d0]
inc ecx
push ecx
push ebx
push 0x1388
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x14c]
push edx
call fcn.0055e68c
mov esi, dword [0x892d3c]
add esp, 0x10
push 0x5010
call fcn.00450180
mov ebx, dword [0x892d3c]
mov eax, dword [ebx + 0x4098]
mov byte [eax + ebx + 0x98], 0xff
mov eax, dword [ebx + 0x4098]
inc eax
mov dword [ebx + 0x4098], eax
mov esi, eax
lea eax, [esp + 0x140]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4dce71
sub eax, edi
mov byte [esi + ebx + 0x98], al
inc dword [ebx + 0x4098]
lea eax, [esp + 0x140]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4dce91
sub eax, edx
lea ecx, [esp + 0x140]
mov edx, eax
push ecx
mov eax, ebx
call fcn.004501d0
xor ecx, ecx
call fcn.00450280
push ebx
call fcn.00450320
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x28]
mov dword [esp + 0x5cc], 0xffffffff
call fcn.00417ad0
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
add eax, 0x40
inc ebx
add edi, 8
cmp eax, 0x200
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 0x14], eax
jl 0x4dcc60
mov eax, esi
call fcn.004f5210
mov ecx, dword [0x8927a4]
add ecx, 0x1aa38
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov edi, eax
call fcn.004086e0
cmp eax, edi
jne case.0x4dc87b.50178
mov ecx, dword [0x8927a4]
add ecx, 0x27244
call fcn.00406a60
test al, al
jne case.0x4dc87b.50178
lea ecx, [esi + 0x11c8]
call fcn.00406a60
test al, al
jne case.0x4dc87b.50178
call fcn.00415890
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [0x8927a4]
mov bl, byte [ebx]
add ecx, 0x1aa2c
call fcn.004086e0
movzx edx, bl
cmp eax, edx
jne case.0x4dc87b.50178
mov eax, dword [0x8927a4]
mov eax, dword [eax + 0x272d8]
test eax, eax
je case.0x4dc87b.50178
lea ecx, [eax + 0x2dc]
call fcn.00406a60
test al, al
jne case.0x4dc87b.50178
mov ecx, dword [0x8927a4]
mov edi, dword [ecx + 0x272d8]
add edi, 0x2dc
mov al, 1
call fcn.00417d80
mov esi, dword [0x892d3c]
push 0x4100
call fcn.00450180
mov eax, dword [0x892d3c]
mov ecx, dword [0x8927a4]
mov edx, dword [ecx + 0x272d8]
mov edx, dword [edx + 0x414]
mov esi, dword [eax + 0x4098]
mov dword [esi + eax + 0x98], edx
mov esi, dword [eax + 0x4098]
add esi, 4
mov dword [eax + 0x4098], esi
mov ecx, dword [ecx + 0x272d8]
mov cl, byte [ecx + 0x410]
mov edx, esi
mov byte [edx + eax + 0x98], cl
mov edx, dword [eax + 0x4098]
inc edx
push eax
mov dword [eax + 0x4098], edx
call fcn.00450320
mov ebx, 0xc304
mov esi, 0x8977e8
call fcn.00458260
mov eax, dword [0x8927a4]
mov edx, dword [eax + 0x272d8]
mov ecx, dword [edx + 0x414]
mov edx, dword [0x89835c]
mov dword [edx + 0x89815c], ecx
mov ecx, dword [0x89835c]
add ecx, 4
mov dword [0x89835c], ecx
mov eax, dword [eax + 0x272d8]
mov dl, byte [eax + 0x410]
mov byte [ecx + 0x89815c], dl
mov edi, dword [0x89835c]
inc edi
push esi
or ecx, 0xffffffff
mov dword [0x89835c], edi
call fcn.00458440
mov eax, dword [0x8927a4]
mov ecx, dword [eax + 0x272d8]
cmp dword [ecx + 0x414], 3
jne case.0x4dc87b.50178
lea edx, [esp + 0x30]
push edx
add eax, 0x80970
push eax
call fcn.00417b70
lea ecx, [esp + 0x30]
call fcn.00417ad0
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
sub eax, 0xf009
je 0x4dd16d
dec eax
je 0x4dd12e
dec eax
jne case.0x4dc87b.50178
movzx eax, word [ebx + 6]
movzx ecx, word [ebx + 4]
movzx edx, word [ebx + 2]
push eax
movzx eax, word [ebx]
push ecx
movzx ecx, byte [esp + 0x18]
push edx
push eax
push ecx
call fcn.004f5ce0
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movzx edx, byte [esp + 0x10]
mov eax, dword [0x8927a4]
push 1
push edx
push eax
call fcn.00428f40
test eax, eax
je case.0x4dc87b.50178
lea ecx, [eax + 0x214]
lea edi, [eax + 0x21c]
call fcn.00417af0
mov ecx, dword [esp + 0x5c4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movzx ecx, byte [ebx]
mov edx, dword [esp + 0x10]
push ecx
push edx
call fcn.004f5910
mov ecx, dword [esp + 0x5c4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8