Function at 0x4e0180
Capabilities:
Access peb ldr_data
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x585d56
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
push edi
mov edi, ecx
mov ecx, eax
and eax, 0xffffff
sar ecx, 0x18
add ebx, 2
sub eax, 2
cmp cl, 7
mov dword [esp + 0x18], edi
mov byte [esp + 0xc], cl
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], eax
ja case.0x4e29f8.50178
movzx eax, dx
cmp eax, 0x8500
jg 0x4e1410
je 0x4e1377
cmp eax, 0x8005
jg 0x4e0b79
je 0x4e0ad4
cmp eax, 0x4003
jg 0x4e070a
je 0x4e0596
cmp eax, 0x4001
jg 0x4e035e
je 0x4e02fb
sub eax, 3
je 0x4e0292
dec eax
jne case.0x4e29f8.50178
movzx eax, byte [ebx]
mov ecx, dword [0x89e864]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4 + 0x24669]
push eax
push eax
movzx eax, byte [esp + 0x14]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*4 + 0x24669]
push eax
push 0x282
push 0x8a3708
call fcn.0044ee40
push eax
lea ecx, [esp + 0x50]
push ecx
call fcn.0056aefc
mov edx, dword [edi]
add esp, 0x14
push 6
push 2
lea eax, [esp + 0x48]
push eax
mov ecx, edi
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 [0x89e864]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*4 + 0x24669]
push eax
push eax
movzx eax, byte [esp + 0x14]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4 + 0x24669]
push ecx
push 0x260
push 0x8a3708
call fcn.0044ee40
push eax
lea edx, [esp + 0x50]
push edx
call fcn.0056aefc
mov eax, dword [edi]
add esp, 0x14
push 6
push 2
lea ecx, [esp + 0x48]
push ecx
mov ecx, edi
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 [0x89e864]
movzx esi, byte [esp + 0xc]
add ecx, 0x1aa9c
call fcn.00432f90
cmp esi, eax
je case.0x4e29f8.50178
mov edx, dword [0x89e864]
push 1
push esi
push edx
call fcn.00429770
test eax, eax
je case.0x4e29f8.50178
mov dl, byte [ebx]
xor ecx, ecx
cmp dl, 1
sete cl
lea edi, [eax + 0xf0]
mov eax, ecx
call fcn.00417f50
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.0x4e29f8.50178
mov edx, dword [0x89e864]
movzx eax, cl
mov cl, byte [eax + edx + 0x26639]
test cl, cl
mov dword [esp + 0x1c], eax
je case.0x4e29f8.50178
add eax, 0x2f4a
imul eax, eax, 0xd
lea ecx, [eax + edx]
push edx
mov dword [esp + 0x14], eax
call fcn.00430bd0
cmp eax, 0xffffffff
jne case.0x4e29f8.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 0x8ac6f4
lea ebx, [esp + 0x1c8]
rep movsb byte es:[edi], byte [esi]
call fcn.00452770
push eax
call fcn.0054bac0
mov eax, dword [0x89e864]
mov ecx, dword [esp + 0x24]
add esp, 8
lea ecx, [eax + ecx*8 + 0x265f8]
call fcn.00418340
test al, al
push 0
je 0x4e0438
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edx, dword [0x89e864]
add eax, 0x12c
push eax
mov al, byte [esp + 0x14]
push ecx
push esi
push 0x11
push edx
call fcn.00426f20
jmp 0x4e0463
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
add ecx, 0x12c
push ecx
mov ecx, dword [0x89e864]
push edx
push eax
mov al, byte [esp + 0x1c]
push 0
push ecx
call fcn.00426f20
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov ebx, dword [0x89e864]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
push 1
push 0
push edi
push esi
add edx, ebx
push edx
lea ecx, [ebx + eax*8]
push 0
lea eax, [eax + ecx + 0x2665a]
push ebx
call fcn.00423ee0
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 + 0x1c]
lea ecx, [ebx + esi*8 + 0x265f8]
mov byte [esp + eax + 0x40], 0
call fcn.00418340
test al, al
mov eax, dword [0x89e864]
setne cl
lea edx, [esp + 0x40]
add eax, 0x802f8
push ecx
push edx
push esi
push eax
call fcn.004485d0
mov ecx, dword [0x89e864]
push 1
push esi
push ecx
call fcn.00429770
mov ecx, dword [0x89e864]
mov edi, eax
add ecx, 0x24604
mov byte [edi + 0x90], 1
call fcn.00432f90
cmp eax, 3
jne case.0x4e29f8.50178
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x4e0520
mov ecx, dword [0x89e864]
push eax
push 0x186a6
add ecx, 0x80324
call fcn.005486f0
mov esi, eax
test esi, esi
je 0x4e0571
lea ecx, [edi + 0xa0]
call fcn.00432f90
lea ecx, [esi + 0x40]
mov ebx, eax
call fcn.00432f90
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x96
jge 0x4e0571
lea edx, [esp + 0x40]
push edx
add esi, 0xc4
push esi
call fcn.0041aac0
mov eax, dword [esp + 0x10]
inc eax
cmp eax, 8
mov dword [esp + 0x10], eax
jl 0x4e0520
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 [0x89e864]
movzx esi, cl
mov al, byte [esi + edx + 0x26639]
test al, al
mov dword [esp + 0x1c], esi
je case.0x4e29f8.50178
lea eax, [esi + 0x2f4a]
imul eax, eax, 0xd
lea ecx, [eax + edx]
push edx
mov dword [esp + 0x14], eax
call fcn.00430bd0
cmp eax, 0xffffffff
jne case.0x4e29f8.50178
mov eax, dword [0x89e864]
mov cl, byte [esi + eax + 0x26652]
cmp cl, byte [eax + 0x1aaa4]
jne case.0x4e29f8.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 0x8ac6f4
lea ebx, [esp + 0x1c8]
rep movsb byte es:[edi], byte [esi]
call fcn.00452770
push eax
call fcn.0054bac0
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edx, dword [0x89e864]
mov al, byte [esp + 0x14]
add esp, 8
push 0
add ecx, 0x12c
push ecx
push edi
push esi
push 7
push edx
call fcn.00426f20
mov ebx, dword [0x89e864]
mov eax, dword [esp + 0x10]
push 1
push 0
push edi
push esi
add eax, ebx
push eax
mov eax, dword [esp + 0x30]
lea ecx, [ebx + eax*8]
push 7
lea eax, [eax + ecx + 0x2665a]
push ebx
call fcn.00423ee0
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 + 0x1c]
lea ecx, [ebx + esi*8 + 0x265f8]
mov byte [esp + eax + 0x40], 0
call fcn.00418340
test al, al
mov eax, dword [0x89e864]
setne cl
lea edx, [esp + 0x40]
add eax, 0x802f8
push ecx
push edx
push esi
push eax
call fcn.004485d0
mov ecx, dword [0x89e864]
push 1
push esi
push ecx
call fcn.00429770
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
cmp eax, 0xfc
ja case.0x4e29f8.50178
movzx edx, byte [eax + 0x4e32e0]
jmp dword [edx*4 + 0x4e32cc]
mov edx, dword [0x89e864]
movzx eax, cl
mov cl, byte [eax + edx + 0x26639]
test cl, cl
mov dword [esp + 0x1c], eax
je case.0x4e29f8.50178
lea ecx, [eax + 0x2f4a]
imul ecx, ecx, 0xd
add ecx, edx
push edx
call fcn.00430bd0
cmp eax, 0xffffffff
jne case.0x4e29f8.50178
mov eax, dword [ebp + 0xc]
xor ecx, ecx
dec eax
test eax, eax
setl cl
mov edx, dword [0x89e864]
lea esi, [ebx + 1]
lea edi, [esp + 0x40]
dec ecx
and ecx, eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x1c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0xc]
mov byte [esp + ecx + 0x3f], 0
lea ecx, [edx + eax*8 + 0x265f8]
call fcn.00418340
test al, al
movzx eax, byte [ebx]
setne cl
lea edx, [esp + 0x40]
add eax, 8
push ecx
mov ecx, dword [0x89e864]
push edx
push eax
add ecx, 0x802f8
push ecx
call fcn.004485d0
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 [0x89e864]
movzx esi, byte [esp + 0xc]
add ecx, 0x1aa9c
call fcn.00432f90
cmp esi, eax
je case.0x4e29f8.50178
mov edx, dword [0x89e864]
push 1
push esi
push edx
call fcn.00429770
mov esi, eax
mov al, byte [ebx]
mov byte [esp + 0x17], al
mov eax, dword [esi + 0x24]
cmp eax, 5
je case.0x4e29f8.50178
cmp eax, 6
je case.0x4e29f8.50178
cmp eax, 8
je case.0x4e29f8.50178
cmp eax, 0xa
je case.0x4e29f8.50178
mov cl, byte [ebx + 1]
xor eax, eax
cmp cl, 1
sete al
lea edi, [esi + 0xf0]
call fcn.00417f50
cmp byte [esp + 0x17], 1
sete al
lea edi, [esi + 0x2c4]
call fcn.004182c0
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 [0x89e864]
movzx esi, byte [esp + 0xc]
add ecx, 0x1aa9c
call fcn.00432f90
cmp esi, eax
je case.0x4e29f8.50178
mov ecx, dword [0x89e864]
push 1
push esi
push ecx
call fcn.00429770
mov ecx, eax
movsx eax, word [ebx]
lea edi, [ecx + 0x198]
call fcn.00417f50
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 [0x89e864]
push 1
add ecx, 0x1aa9c
call fcn.00432f90
mov edx, dword [0x89e864]
push eax
push edx
call fcn.00429770
mov esi, eax
test esi, esi
mov dword [esp + 0x1c], esi
je case.0x4e29f8.50178
mov eax, dword [0x89e784]
test eax, eax
je case.0x4e29f8.50178
movzx eax, word [ebx]
mov ecx, dword [0x89e864]
movzx edi, word [ebx + 4]
mov dword [esp + 0x10], eax
mov al, byte [ecx + 0x1aaa4]
movzx dx, al
add ebx, 2
cmp dx, word [ebx]
jne 0x4e09df
add ecx, 0x1aa9c
test al, al
jne 0x4e0988
call fcn.00432f90
mov esi, eax
call fcn.004fb8a0
mov esi, edi
mov ebx, eax
call fcn.004fb8a0
cmp ebx, eax
jne 0x4e09db
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
lea edi, [ebx + esi*8 + 0x64c]
mov al, 1
call fcn.004182c0
mov ecx, dword [0x89e864]
add ecx, 0x1aa9c
call fcn.00432f90
lea ecx, [esi + eax*8]
add ecx, eax
lea edi, [ebx + ecx*8 + 0x694]
jmp 0x4e09d4
call fcn.00432f90
mov esi, eax
call fcn.004fb8e0
mov esi, edi
mov ebx, eax
call fcn.004fb8e0
cmp ebx, eax
jne 0x4e09db
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
lea edi, [ebx + esi*8 + 0x64c]
mov al, 1
call fcn.004182c0
mov ecx, dword [0x89e864]
add ecx, 0x1aa9c
call fcn.00432f90
lea edx, [esi + eax*8]
add edx, eax
lea edi, [ebx + edx*8 + 0x694]
mov al, 1
call fcn.004182c0
mov esi, dword [esp + 0x1c]
lea edi, [esi + 0x66c]
mov ecx, edi
call fcn.00418340
test al, al
je 0x4e0a24
mov ecx, dword [0x89e864]
add ecx, 0x1aa9c
call fcn.00432f90
lea eax, [eax + eax*8]
lea ecx, [esi + eax*8 + 0x6b4]
call fcn.00418340
test al, al
je 0x4e0a24
mov ecx, dword [0x89e864]
mov dword [ecx + 0x29550], 0xffffffff
add esi, 0x674
mov ecx, esi
call fcn.00418340
test al, al
je case.0x4e29f8.50178
mov ecx, dword [0x89e864]
add ecx, 0x1aa9c
call fcn.00432f90
lea edx, [eax + eax*8]
mov eax, dword [esp + 0x1c]
lea ecx, [eax + edx*8 + 0x6bc]
call fcn.00418340
test al, al
je case.0x4e29f8.50178
xor al, al
call fcn.004182c0
xor al, al
mov edi, esi
call fcn.004182c0
mov ecx, dword [0x89e864]
add ecx, 0x1aa9c
call fcn.00432f90
mov esi, dword [esp + 0x1c]
lea ecx, [eax + eax*8]
lea edi, [esi + ecx*8 + 0x6b4]
xor al, al
call fcn.004182c0
mov ecx, dword [0x89e864]
add ecx, 0x1aa9c
call fcn.00432f90
lea edx, [eax + eax*8]
lea edi, [esi + edx*8 + 0x6bc]
xor al, al
call fcn.004182c0
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 [0x89e864]
movzx esi, byte [esp + 0xc]
add ecx, 0x1aa9c
call fcn.00432f90
cmp esi, eax
je case.0x4e29f8.50178
mov eax, dword [0x89e864]
push 1
push esi
push eax
call fcn.00429770
mov esi, eax
test esi, esi
je case.0x4e29f8.50178
lea ecx, [esi + 0x29c]
call fcn.00418340
test al, al
je case.0x4e29f8.50178
lea ecx, [esi + 0x2b4]
call fcn.00418340
test al, al
je case.0x4e29f8.50178
mov eax, dword [esi + 0x24]
cmp eax, 5
je case.0x4e29f8.50178
cmp eax, 6
je case.0x4e29f8.50178
movzx eax, word [ebx]
lea edi, [esi + 0xd0]
call fcn.00417f50
movzx eax, word [ebx + 2]
lea edi, [esi + 0xd8]
call fcn.00417f50
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 0x4e1121
je 0x4e1084
cmp eax, 0x8403
jg 0x4e100d
je 0x4e0db0
cmp eax, 0x8006
je 0x4e0c4f
cmp eax, 0x8402
jne case.0x4e29f8.50178
mov ecx, dword [0x89e864]
movzx esi, byte [esp + 0xc]
add ecx, 0x1aa9c
call fcn.00432f90
cmp esi, eax
je case.0x4e29f8.50178
mov ecx, dword [0x89e864]
push 1
push esi
push ecx
call fcn.00429770
mov esi, eax
test esi, esi
je case.0x4e29f8.50178
movzx eax, word [ebx]
lea edi, [esi + 0xd0]
call fcn.00417f50
lea edi, [esi + 0xa0]
mov ecx, eax
call fcn.00417f00
movzx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0xd8]
call fcn.00417f50
lea edi, [esi + 0xa8]
mov ecx, eax
call fcn.00417f00
mov cl, byte [ebx + 2]
xor eax, eax
cmp cl, 1
sete al
lea edi, [esi + 0xf0]
call fcn.00417f50
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 + 0xc]
mov eax, dword [0x89e864]
push 1
push edx
push eax
call fcn.00429770
mov esi, eax
test esi, esi
je case.0x4e29f8.50178
movzx eax, word [ebx]
lea edi, [esi + 0xd0]
call fcn.00417f50
lea edi, [esi + 0xa0]
mov ecx, eax
call fcn.00417f00
movzx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0xd8]
call fcn.00417f50
lea edi, [esi + 0xa8]
mov ecx, eax
call fcn.00417f00
mov cl, byte [ebx + 2]
add ebx, 2
mov byte [esp + 0x17], cl
mov cl, byte [ebx + 1]
xor eax, eax
cmp cl, 1
sete al
lea edi, [esi + 0xf0]
call fcn.00417f50
cmp byte [esp + 0x17], 2
lea edi, [esi + 0x2cc]
sete al
call fcn.004182c0
mov ecx, edi
call fcn.00418340
test al, al
jne 0x4e0cf7
cmp byte [esp + 0x17], 1
sete al
lea edi, [esi + 0x2c4]
call fcn.004182c0
mov eax, dword [0x89e864]
xor edx, edx
mov dx, word [esi + 0x468]
push edx
push eax
call fcn.00426770
test al, al
jne 0x4e0d8d
movzx eax, byte [esp + 0x17]
sub eax, 0
je 0x4e0d6a
dec eax
je 0x4e0d47
dec eax
jne case.0x4e29f8.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 + 0xc]
mov edx, dword [0x89e864]
push 1
push ecx
push edx
call fcn.00429770
mov esi, eax
test esi, esi
je case.0x4e29f8.50178
movzx eax, word [ebx]
lea edi, [esi + 0xd0]
call fcn.00417f50
lea edi, [esi + 0xa0]
mov ecx, eax
call fcn.00417f00
movzx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0xd8]
call fcn.00417f50
lea edi, [esi + 0xa8]
mov ecx, eax
call fcn.00417f00
mov al, byte [ebx + 2]
add ebx, 2
xor ecx, ecx
inc ebx
cmp al, 1
sete cl
lea edi, [esi + 0xf0]
mov eax, ecx
call fcn.00417f50
mov al, byte [ebx]
inc ebx
cmp al, 1
sete al
lea edi, [esi + 0x2c4]
call fcn.004182c0
movzx eax, word [ebx]
lea edi, [esi + 0x1a8]
call fcn.00417f50
movzx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x254]
call fcn.00417f50
mov dl, byte [ebx + 2]
add ebx, 2
mov byte [esi + 0x200], dl
movsx eax, word [ebx + 1]
inc ebx
lea edi, [esi + 0x1c0]
call fcn.00417f50
movsx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x1c8]
call fcn.00417f50
movsx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x1d0]
call fcn.00417f50
movsx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x1d8]
call fcn.00417f50
movsx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x1e0]
call fcn.00417f50
movsx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x1e8]
call fcn.00417f50
mov edi, dword [0x89e864]
movsx eax, word [ebx + 2]
add ebx, 2
add edi, 0x2704c
call fcn.00417f50
mov edi, dword [0x89e864]
movsx eax, word [ebx + 2]
add ebx, 2
add edi, 0x27054
call fcn.00417f50
mov eax, dword [0x89ee3c]
add ebx, 2
test eax, eax
je 0x4e0f19
movzx eax, word [ebx]
lea edi, [esi + 0x8d4]
call fcn.00417f50
add ebx, 2
mov al, byte [ebx]
mov edi, dword [0x89e864]
cmp al, 1
sete al
add edi, 0x27074
call fcn.004182c0
mov eax, dword [0x89e864]
inc ebx
push ebx
add eax, 0x802f8
call fcn.0044e2d0
call fcn.0044d740
cmp al, 1
jne 0x4e0f7a
mov eax, dword [str.ifire]
add esi, 0x4dc
mov dword [esi], eax
mov cx, word [0x59e048]
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 [esi]
push str.ifire
mov ecx, esi
call dword [edx + 4]
mov ecx, dword [0x89e864]
mov edi, dword [esp + 0x18]
mov esi, dword [edi + 0x10a4]
add ecx, 0x1aa9c
call fcn.00432f90
cmp esi, eax
mov eax, dword [0x89e864]
je 0x4e2c8a
mov dl, byte [esi + eax + 0x2483e]
cmp dl, byte [eax + 0x1aaa4]
je 0x4e0fcd
mov ecx, dword [eax + 0x27350]
mov dword [ecx + 0x414], 1
mov edx, dword [edi + 0x10a4]
mov cl, byte [edx + eax + 0x2483e]
cmp cl, byte [eax + 0x1aaa4]
jne case.0x4e29f8.50178
mov edx, dword [eax + 0x27350]
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
cmp eax, 0x8404
jne case.0x4e29f8.50178
movzx eax, word [ebx]
mov ecx, dword [edi + 0x98]
mov dword [edi + ecx*4 + 0x9c], eax
movzx edx, word [ebx + 2]
mov eax, dword [edi + 0x98]
add ebx, 2
mov dword [edi + eax*4 + 0x29c], edx
movzx ecx, byte [ebx + 2]
mov edx, dword [edi + 0x98]
add ebx, 2
mov dword [edi + edx*4 + 0x49c], ecx
movzx eax, byte [ebx + 1]
mov ecx, dword [edi + 0x98]
push edi
mov dword [edi + ecx*4 + 0x69c], eax
call fcn.004f77b0
inc dword [edi + 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 + 0xc]
mov eax, esi
call fcn.0044d420
mov eax, esi
call fcn.0044d460
mov eax, esi
call fcn.0044d480
mov edi, dword [0x89e864]
add edi, 0x55ee0
xor al, al
call fcn.004182c0
mov edx, dword [0x89e864]
push esi
push edx
call fcn.00429820
mov eax, dword [0x89e864]
mov ecx, dword [eax + 0x27350]
add ecx, 0x2cc
call fcn.00418340
mov ecx, dword [0x89e864]
mov ecx, dword [ecx + 0x27350]
add ecx, 0x2cc
call fcn.00418340
test al, al
jne case.0x4e29f8.50178
mov edx, dword [0x89e864]
mov ecx, dword [edx + 0x27350]
add ecx, 0x2c4
call fcn.00418340
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 0x4e128a
dec eax
je 0x4e119f
dec eax
jne case.0x4e29f8.50178
movzx eax, word [ebx]
mov ecx, dword [edi + 0x89c]
mov dword [edi + ecx*4 + 0x8a0], eax
movzx edx, word [ebx + 2]
mov eax, dword [edi + 0x89c]
add ebx, 2
mov dword [edi + eax*4 + 0xaa0], edx
mov ecx, dword [edi + 0x89c]
mov edx, dword [ebx + 2]
movzx eax, byte [esp + 0xc]
mov dword [edi + ecx*4 + 0xea0], edx
mov ecx, dword [edi + 0x89c]
push edi
mov dword [edi + ecx*4 + 0xca0], eax
call fcn.004f7860
inc dword [edi + 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 + 0xc]
mov edx, dword [0x89e864]
push 1
push esi
push edx
call fcn.00429770
mov ecx, dword [0x89e864]
add ecx, 0x24604
mov edi, eax
call fcn.00432f90
cmp eax, 1
je 0x4e1251
mov ecx, dword [0x89e864]
add ecx, 0x24604
call fcn.00432f90
cmp eax, 3
je 0x4e1251
mov ecx, dword [0x89e864]
add ecx, 0x24604
call fcn.00432f90
cmp eax, 4
je 0x4e1251
test edi, edi
je 0x4e1251
cmp dword [edi + 0x24], 0xe
jne 0x4e1251
movzx eax, byte [ebx]
dec eax
je 0x4e1223
dec eax
je 0x4e121c
dec eax
jne case.0x4e29f8.50178
mov ecx, 0x5fc7ac
jmp 0x4e1228
mov ecx, 0x5fc784
jmp 0x4e1228
mov ecx, 0x5fc75c
call fcn.00432f90
mov ecx, dword [0x89e864]
push eax
push esi
call fcn.00432770
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 [0x89e864]
add ecx, 0x1aa9c
call fcn.00432f90
mov ecx, dword [0x89e864]
add ecx, 0x1aaa8
call fcn.00432f90
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 + 0xc]
mov eax, dword [0x89e864]
push 1
push edi
push eax
call fcn.00429770
mov ecx, dword [0x89e864]
add ecx, 0x24604
mov esi, eax
call fcn.00432f90
cmp eax, 1
je 0x4e1251
mov ecx, dword [0x89e864]
add ecx, 0x24604
call fcn.00432f90
cmp eax, 3
je 0x4e1251
mov ecx, dword [0x89e864]
add ecx, 0x24604
call fcn.00432f90
cmp eax, 4
je 0x4e1251
test esi, esi
je 0x4e1251
cmp dword [esi + 0x24], 0xe
jne 0x4e1251
mov ecx, dword [0x89e864]
add ecx, 0x1aa9c
call fcn.00432f90
cmp edi, eax
je case.0x4e29f8.50178
movzx eax, word [ebx]
lea edi, [esi + 0xd0]
call fcn.00417f50
lea edi, [esi + 0xa0]
mov ecx, eax
call fcn.00417f00
movzx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0xd8]
call fcn.00417f50
lea edi, [esi + 0xa8]
mov ecx, eax
call fcn.00417f00
mov cl, byte [ebx + 2]
xor eax, eax
cmp cl, 1
sete al
lea edi, [esi + 0xf0]
call fcn.00417f50
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]
mov edx, dword [0x89e864]
movzx ecx, al
push 1
push ecx
push edx
inc ebx
call fcn.00429770
mov esi, eax
test esi, esi
je case.0x4e29f8.50178
lea ecx, [esi + 0x29c]
call fcn.00418340
test al, al
jne case.0x4e29f8.50178
movzx eax, word [ebx]
lea edi, [esi + 0xd0]
call fcn.00417f50
lea edi, [esi + 0xa0]
mov ecx, eax
call fcn.00417f00
movzx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0xd8]
call fcn.00417f50
lea edi, [esi + 0xa8]
mov ecx, eax
call fcn.00417f00
mov cl, byte [ebx + 2]
xor eax, eax
cmp cl, 1
sete al
lea edi, [esi + 0xf0]
call fcn.00417f50
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 0x4e29d2
je 0x4e26c9
sub eax, 0xc300
cmp eax, 0xa
ja case.0x4e29f8.50178
jmp dword [eax*4 + 0x4e33e0]
mov ecx, dword [0x89e864]
add ecx, 0x272a4
call fcn.00418340
cmp al, 1
jne 0x4e14a6
mov ecx, dword [0x89e864]
add ecx, 0x1aaa8
call fcn.00432f90
mov ecx, dword [0x89e864]
add ecx, 0x1aa9c
mov esi, eax
call fcn.00432f90
cmp eax, esi
jne case.0x4e29f8.50178
mov ebx, 0xc40b
mov esi, 0x8a38b0
call fcn.00459870
push esi
or ecx, 0xffffffff
call fcn.00459a50
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 [0x89e864]
add edi, 0x80608
xor al, al
call fcn.004182c0
mov esi, dword [esp + 0x18]
mov al, byte [esi + 0x11dc]
test al, al
mov dword [esi + 0x1308], 0xffffffff
mov byte [esi + 0x14a8], 0
je 0x4e14e6
push esi
call fcn.004fcef0
test al, al
jne case.0x4e29f8.50178
mov al, byte [esi + 0x14a8]
test al, al
jne 0x4e1506
xor ecx, ecx
mov byte [esi + 0x14a8], 1
mov cl, byte [ebx]
lea eax, [ebx + 1]
push eax
push ecx
push esi
call fcn.004fbae0
push 0xc300
push 0x8a38b0
call fcn.0045a0d0
push 0xc306
push 0x8a38b0
call fcn.0045a0d0
push 0xc40b
push 0x8a38b0
call fcn.0045a0d0
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 [ebx]
mov esi, dword [esp + 0x18]
lea edi, [esi + edx*8 + 0x1320]
xor al, al
call fcn.004182c0
movzx eax, byte [ebx]
cmp eax, 0xf
ja case.0x4e29f8.50178
movzx eax, byte [eax + 0x4e3424]
jmp dword [eax*4 + 0x4e340c]
push esi
mov dword [esi + 0x10bc], 3
call fcn.004faa90
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.004faa90
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 [0x89e864]
mov edi, dword [ecx + 0x27350]
add edi, 0x580
xor al, al
call fcn.004182c0
mov edx, dword [esp + 0x18]
lea esi, [ebx + 1]
mov ebx, edx
mov dword [edx + 0x10bc], 0
lea edi, [ebx + 0x12bc]
mov ecx, 0x10
push ebx
rep movsd dword es:[edi], dword [esi]
call fcn.004fbfd0
push ebx
call fcn.004faa90
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 [0x89e864]
mov edi, dword [eax + 0x27350]
add edi, 0x580
xor al, al
call fcn.004182c0
mov ecx, dword [esp + 0x18]
mov al, byte [ecx + 0x10a4]
mov edx, dword [esp + 0x18]
inc ebx
lea edi, [ecx + 0x12bc]
mov esi, ebx
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
movzx ecx, word [ebx + 0x40]
movzx edi, al
mov eax, dword [0x89e864]
add ebx, 0x40
push 1
push edi
push eax
mov dword [edx + 0x10a8], ecx
add ebx, 2
call fcn.00429770
mov esi, eax
test esi, esi
je 0x4e1715
cmp dword [esi + 0x24], 0xe
je 0x4e16f7
lea ecx, [esi + 0x2d4]
call fcn.00418340
cmp al, 1
jne 0x4e16f7
lea ecx, [esi + 0x22c]
call fcn.00432f90
lea ecx, [esi + 0x214]
mov dword [esp + 0x10], eax
call fcn.00432f90
mov ecx, dword [esp + 0x10]
add ecx, eax
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea edx, [esp + 0x10]
mov dword [esp + 0x10], ecx
push edx
lea ecx, [esi + 0x21c]
call fcn.00408760
test al, al
mov ecx, esi
je 0x4e16ed
mov eax, dword [esi]
push str.wnormal
call dword [eax + 4]
jmp 0x4e16f7
mov edx, dword [esi]
push str.normal
call dword [edx + 4]
mov eax, dword [esi + 0x408]
cmp eax, 0xffffffff
je 0x4e1715
push eax
call fcn.0054bbf0
add esp, 4
mov dword [esi + 0x408], 0xffffffff
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x10a8]
mov ecx, dword [0x89e864]
push eax
lea edi, [ecx + edi*8 + 0x29408]
call fcn.00418060
lea edi, [esi + 0x1238]
mov ecx, 0x18
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.0044c1b0
mov esi, dword [esp + 0x18]
push esi
call fcn.004fbfd0
lea ecx, [esp + 0x10]
mov eax, 0x8a463c
mov dword [esp + 0x10], 0xc300
call fcn.0045b030
lea ecx, [esp + 0x10]
mov eax, 0x8a463c
mov dword [esp + 0x10], 0xc306
call fcn.0045b030
lea ecx, [esp + 0x10]
mov eax, 0x8a463c
mov dword [esp + 0x10], 0xc40b
call fcn.0045b030
push 0x8005
push 0x8a38b0
call fcn.0045a0d0
push 0x8006
push 0x8a38b0
call fcn.0045a0d0
push 0xc306
push 0x8a38b0
call fcn.0045a0d0
push 0xc400
push 0x8a38b0
call fcn.0045a0d0
push 0xc401
push 0x8a38b0
call fcn.0045a0d0
push 0x8403
push 0x8a38b0
call fcn.0045a0d0
push 0x8405
push 0x8a38b0
call fcn.0045a0d0
push 0xc409
push 0x8a38b0
call fcn.0045a0d0
push esi
mov byte [esi + 0x14a8], 0
call fcn.004f5be0
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 [0x89e864]
mov edi, dword [edx + 0x27350]
add edi, 0x580
xor al, al
call fcn.004182c0
call fcn.0044c1b0
lea esi, [ebx + 1]
mov ebx, dword [esp + 0x18]
lea edi, [ebx + 0x12bc]
mov ecx, 0x10
push ebx
rep movsd dword es:[edi], dword [esi]
call fcn.004fbfd0
lea ecx, [esp + 0x10]
mov eax, 0x8a463c
mov dword [esp + 0x10], 0xc300
call fcn.0045b030
lea ecx, [esp + 0x10]
mov eax, 0x8a463c
mov dword [esp + 0x10], 0xc306
call fcn.0045b030
lea ecx, [esp + 0x10]
mov eax, 0x8a463c
mov dword [esp + 0x10], 0xc40b
call fcn.0045b030
push 0x8005
push 0x8a38b0
call fcn.0045a0d0
push 0x8006
push 0x8a38b0
call fcn.0045a0d0
push 0xc306
push 0x8a38b0
call fcn.0045a0d0
push 0xc400
push 0x8a38b0
call fcn.0045a0d0
push 0xc401
push 0x8a38b0
call fcn.0045a0d0
push 0x8403
push 0x8a38b0
call fcn.0045a0d0
push 0x8405
push 0x8a38b0
call fcn.0045a0d0
push 0xc409
push 0x8a38b0
call fcn.0045a0d0
push ebx
call fcn.004f5be0
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, word [ebx + 1]
mov ecx, dword [0x89e864]
inc ebx
mov dword [edi + 0x10a8], eax
movzx eax, byte [esp + 0xc]
push 1
push eax
push ecx
add ebx, 2
call fcn.00429770
mov esi, eax
test esi, esi
je 0x4e1a24
cmp dword [esi + 0x24], 0xe
je 0x4e19d6
lea ecx, [esi + 0x2d4]
call fcn.00418340
cmp al, 1
jne 0x4e19d6
lea ecx, [esi + 0x22c]
call fcn.00432f90
lea ecx, [esi + 0x214]
mov edi, eax
call fcn.00432f90
add edi, eax
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
lea ecx, [esp + 0x10]
add eax, edx
push ecx
lea ecx, [esi + 0x21c]
mov dword [esp + 0x14], eax
call fcn.00408760
test al, al
mov ecx, esi
je 0x4e19cc
mov edx, dword [esi]
push str.wnormal
call dword [edx + 4]
jmp 0x4e19d6
mov eax, dword [esi]
push str.normal
call dword [eax + 4]
mov eax, dword [esi + 0x408]
cmp eax, 0xffffffff
je 0x4e19f4
push eax
call fcn.0054bbf0
add esp, 4
mov dword [esi + 0x408], 0xffffffff
lea edi, [esi + 0x29c]
xor al, al
call fcn.004182c0
lea edi, [esi + 0x2b4]
xor al, al
call fcn.004182c0
lea ecx, [esi + 0xe8]
call fcn.00418340
test al, al
je 0x4e1a24
mov edi, esi
call fcn.0047b270
movzx esi, byte [esp + 0xc]
mov ecx, dword [0x89e864]
lea ecx, [ecx + esi*8 + 0x29408]
call fcn.00432f90
cmp eax, 0xffffffff
je 0x4e1a6a
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x10a8]
cmp eax, 0xea60
je 0x4e1a6a
cmp eax, 0xffff
je 0x4e1a6a
push eax
mov eax, dword [0x89e864]
lea edi, [eax + esi*8 + 0x29408]
call fcn.00418060
mov edi, dword [esp + 0x18]
add edi, 0x1238
mov ecx, 0x18
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [0x89e864]
add edi, 0x803a8
mov al, 1
call fcn.004182c0
mov edi, dword [0x89e864]
add edi, 0x803b0
xor al, al
call fcn.004182c0
mov ecx, dword [0x89e864]
mov edx, dword [ecx + 0x27350]
mov eax, dword [esp + 0x18]
mov byte [edx + 0x3e4], 1
mov byte [eax + 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 [0x89e864]
add edi, 0x80608
xor al, al
call fcn.004182c0
movzx edi, byte [esp + 0xc]
mov edx, dword [0x89e864]
mov ecx, dword [esp + 0x18]
push 1
push edi
push edx
mov dword [ecx + 0x1308], 0xffffffff
call fcn.00429770
mov ecx, dword [0x89e864]
add ecx, 0x1aa9c
mov esi, eax
call fcn.00432f90
cmp edi, eax
je 0x4e1b7f
test esi, esi
je 0x4e1b82
movzx eax, word [ebx]
lea edi, [esi + 0xd0]
call fcn.00417f50
lea edi, [esi + 0xa0]
mov ecx, eax
call fcn.00417f00
movzx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0xd8]
call fcn.00417f50
lea edi, [esi + 0xa8]
mov ecx, eax
call fcn.00417f00
mov al, byte [ebx + 2]
add ebx, 2
xor ecx, ecx
inc ebx
cmp al, 1
sete cl
lea edi, [esi + 0xf0]
mov eax, ecx
call fcn.00417f50
jmp 0x4e1b82
add ebx, 5
movzx edx, word [ebx + 1]
mov edi, dword [esp + 0x18]
inc ebx
add ebx, 2
test esi, esi
mov dword [edi + 0x10a8], edx
je 0x4e1bb6
mov eax, dword [esi + 0x408]
cmp eax, 0xffffffff
je 0x4e1bb6
push eax
call fcn.0054bbf0
add esp, 4
mov dword [esi + 0x408], 0xffffffff
cmp dword [edi + 0x10a8], 0xffff
jne 0x4e1be0
movzx eax, byte [esp + 0xc]
mov ecx, dword [0x89e864]
lea edi, [ecx + eax*8 + 0x29408]
or eax, 0xffffffff
call fcn.00417f50
mov edi, dword [esp + 0x18]
movzx eax, byte [esp + 0xc]
mov edx, dword [0x89e864]
lea ecx, [edx + eax*8 + 0x29408]
call fcn.00432f90
cmp eax, 0xffffffff
je 0x4e1c21
mov eax, dword [edi + 0x10a8]
cmp eax, 0xea60
je 0x4e1c21
mov ecx, dword [0x89e864]
push eax
movzx eax, byte [esp + 0x10]
lea edi, [ecx + eax*8 + 0x29408]
call fcn.00418060
mov eax, dword [esp + 0x18]
lea edi, [eax + 0x1238]
mov ecx, 0x18
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x1228]
mov al, 1
call fcn.004182c0
mov edi, dword [0x89e864]
add edi, 0x803a8
mov al, 1
call fcn.004182c0
mov edi, dword [0x89e864]
add edi, 0x803b0
xor al, al
call fcn.004182c0
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 [0x89e864]
add ecx, 0x1aa9c
call fcn.00432f90
mov ecx, dword [0x89e864]
add ecx, 0x1aaa8
mov esi, eax
call fcn.00432f90
cmp esi, eax
jne case.0x4e29f8.50178
mov ebx, 0xc309
mov esi, 0x8a38b0
call fcn.00459870
mov edx, dword [0x8a4424]
mov al, byte [esp + 0xc]
mov ecx, dword [ebp + 8]
mov byte [edx + 0x8a4224], al
mov esi, dword [0x8a4424]
mov edx, dword [ebp + 0xc]
inc esi
push ecx
mov eax, 0x8a38b0
mov dword [0x8a4424], esi
call fcn.004598b0
push eax
or ecx, 0xffffffff
call fcn.00459a50
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 + 0x17], dl
mov edx, dword [edi + 0x10b4]
add ebx, 4
xor eax, eax
test edx, edx
mov byte [esp + 0xc], cl
jle 0x4e1d48
jmp 0x4e1d30
cmp byte [edi + eax + 0x10ac], cl
je case.0x4e29f8.50178
mov edx, dword [edi + 0x10b4]
inc eax
cmp eax, edx
jl 0x4e1d30
movzx eax, byte [esp + 0xc]
push 1
push eax
mov eax, dword [0x89e864]
push eax
call fcn.00429770
mov esi, eax
test esi, esi
mov dword [esp + 0x1c], esi
je case.0x4e29f8.50178
push 0xffffffffffffffff
mov eax, 1
mov ecx, esi
call fcn.00479ef0
lea ecx, [esi + 0x4d4]
call fcn.00418340
test al, al
jne case.0x4e29f8.50178
cmp dword [esi + 0x24], 0xe
je case.0x4e29f8.50178
movzx ebx, byte [ebx]
mov ecx, dword [0x89e864]
push 1
push ebx
push ecx
call fcn.00429770
mov esi, eax
test esi, esi
je 0x4e2439
mov eax, dword [0x89e864]
mov cl, byte [eax + 0x245ec]
test cl, cl
je 0x4e2439
mov cl, byte [edi + 0x11dc]
test cl, cl
jne 0x4e2439
lea ecx, [eax + 0x24604]
call fcn.00432f90
cmp eax, 3
je 0x4e2439
movzx edi, byte [esp + 0x17]
mov edx, edi
and edx, 0xf000
cmp edx, 0xf000
je 0x4e2439
lea ecx, [esp + 0x20]
call fcn.00417e00
mov al, byte [esp + 0x17]
and edi, 0xf
test al, 0x10
mov dword [esp + 0x5cc], 0
je 0x4e21e9
dec edi
je 0x4e2094
dec edi
je 0x4e1f82
dec edi
jne 0x4e21c9
movzx esi, byte [esp + 0xc]
mov eax, dword [0x89e864]
push 1
lea edi, [eax + esi*8 + 0x27144]
call fcn.004180b0
mov eax, 0x1151510e
lea ecx, [esp + 0x20]
call fcn.00418100
mov edx, dword [0x89e864]
mov ecx, esi
shl ecx, 6
lea ecx, [ecx + edx + 0x267a4]
call fcn.00432f90
mov ecx, 0x5fc7ac
mov edi, eax
call fcn.00432f90
lea ecx, [esp + 0x20]
add edi, eax
call fcn.00432f90
imul edi, eax
mov ecx, 0x5fc7ac
call fcn.00432f90
mov ecx, eax
mov eax, edi
cdq
idiv ecx
lea edi, [esp + 0x20]
call fcn.00417f50
mov ecx, edi
call fcn.00432f90
mov ecx, dword [0x89e864]
push eax
push ebx
call fcn.00432770
mov ebx, dword [esp + 0x1c]
push 0xffffffffffffffff
lea ecx, [ebx + 0xa8]
call fcn.00432f90
push eax
lea ecx, [ebx + 0xa0]
call fcn.00432f90
mov edx, dword [0x89e864]
push eax
add edx, 0x802f8
push edx
call fcn.00445310
mov ecx, edi
call fcn.00432f90
push eax
mov eax, dword [0x89e864]
movzx ecx, byte [esi + eax + 0x26652]
lea edi, [eax + ecx*8 + 0x80b38]
call fcn.00418060
lea ecx, [esp + 0x20]
call fcn.00432f90
push eax
lea edx, [ebx + 0x389]
push edx
push 0x264
push 0x8a3708
call fcn.0044ee40
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.0056aefc
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
add esp, 0x10
push 2
push 3
lea eax, [esp + 0x48]
push eax
call dword [edx + 0x2c]
mov eax, dword [0x89e864]
mov ecx, dword [eax + 0x27350]
cmp dword [ecx + 0x414], 3
jne 0x4e21cd
lea edx, [esp + 0x38]
push edx
add eax, 0x80a80
push eax
call fcn.00417f80
lea ecx, [esp + 0x38]
call fcn.00417ee0
jmp 0x4e21cd
mov eax, dword [0x89e864]
push 2
lea edi, [eax + ebx*8 + 0x27144]
call fcn.004180b0
mov eax, 0x1151510e
lea ecx, [esp + 0x20]
call fcn.00418100
mov edx, dword [0x89e864]
mov ecx, ebx
shl ecx, 6
lea ecx, [ecx + edx + 0x267a4]
call fcn.00432f90
mov ecx, 0x5fc7ac
mov edi, eax
call fcn.00432f90
lea ecx, [esp + 0x20]
add edi, eax
call fcn.00432f90
imul edi, eax
mov ecx, 0x5fc7ac
call fcn.00432f90
mov ecx, eax
mov eax, edi
cdq
idiv ecx
lea edi, [esp + 0x20]
call fcn.00417f50
mov ecx, edi
call fcn.00432f90
mov ecx, dword [0x89e864]
push eax
push ebx
call fcn.00432770
push 0xfffffffffffffffc
lea ecx, [esi + 0xa8]
call fcn.00432f90
push eax
lea ecx, [esi + 0xa0]
call fcn.00432f90
mov edx, dword [0x89e864]
push eax
add edx, 0x802f8
push edx
call fcn.00445310
mov ecx, edi
call fcn.00432f90
push eax
mov eax, dword [0x89e864]
movzx ecx, byte [ebx + eax + 0x26652]
lea edi, [eax + ecx*8 + 0x80b38]
call fcn.00418060
lea ecx, [esp + 0x20]
call fcn.00432f90
push eax
add esi, 0x389
push esi
push 0x263
push 0x8a3708
call fcn.0044ee40
push eax
lea edx, [esp + 0x4c]
push edx
call fcn.0056aefc
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
add esp, 0x10
push 2
push 3
lea edx, [esp + 0x48]
push edx
call dword [eax + 0x2c]
jmp 0x4e21c9
mov eax, dword [0x89e864]
push 1
lea edi, [eax + ebx*8 + 0x27144]
call fcn.00418060
mov eax, 0xeeaeaea4
lea ecx, [esp + 0x20]
call fcn.00418100
mov edx, dword [0x89e864]
mov ecx, ebx
shl ecx, 6
lea ecx, [ecx + edx + 0x267a4]
call fcn.00432f90
mov ecx, 0x5fc7ac
mov edi, eax
call fcn.00432f90
lea ecx, [esp + 0x20]
add edi, eax
call fcn.00432f90
imul edi, eax
mov ecx, 0x5fc7ac
call fcn.00432f90
mov ecx, eax
mov eax, edi
cdq
idiv ecx
lea edi, [esp + 0x20]
call fcn.00417f50
mov ecx, edi
call fcn.00432f90
mov ecx, dword [0x89e864]
push eax
push ebx
call fcn.00432770
mov ecx, edi
call fcn.00432f90
mov edx, dword [0x89e864]
push eax
lea edi, [edx + ebx*8 + 0x27104]
call fcn.00418060
push 1
lea ecx, [esi + 0xa8]
call fcn.00432f90
push eax
lea ecx, [esi + 0xa0]
call fcn.00432f90
push eax
mov eax, dword [0x89e864]
add eax, 0x802f8
push eax
call fcn.00445310
lea ecx, [esp + 0x20]
call fcn.00432f90
push eax
mov eax, dword [0x89e864]
movzx ecx, byte [ebx + eax + 0x26652]
lea edi, [eax + ecx*8 + 0x80b38]
call fcn.00418060
lea ecx, [esp + 0x20]
call fcn.00432f90
push eax
add esi, 0x389
push esi
push 0x262
push 0x8a3708
call fcn.0044ee40
push eax
lea edx, [esp + 0x4c]
push edx
call fcn.0056aefc
mov esi, dword [esp + 0x28]
mov eax, dword [esi]
add esp, 0x10
push 3
push 4
lea ecx, [esp + 0x48]
push ecx
mov ecx, esi
call dword [eax + 0x2c]
lea edi, [esi + ebx*8 + 0x11e8]
call fcn.004187d0
mov ebx, dword [esp + 0x1c]
lea edi, [ebx + 0xa8]
mov eax, 0x2710
call fcn.00417f50
mov byte [ebx + 0x388], 1
jmp 0x4e2425
dec edi
je 0x4e230a
dec edi
jne 0x4e2425
mov edx, dword [0x89e864]
push 2
lea edi, [edx + ebx*8 + 0x27144]
call fcn.004180b0
mov eax, 0x1151510e
lea ecx, [esp + 0x20]
call fcn.00418100
mov ecx, dword [0x89e864]
mov eax, ebx
shl eax, 6
lea ecx, [eax + ecx + 0x267a4]
call fcn.00432f90
mov ecx, 0x5fc7ac
mov edi, eax
call fcn.00432f90
lea ecx, [esp + 0x20]
add edi, eax
call fcn.00432f90
imul edi, eax
mov ecx, 0x5fc7ac
call fcn.00432f90
mov ecx, eax
mov eax, edi
cdq
idiv ecx
lea edi, [esp + 0x20]
call fcn.00417f50
mov ecx, edi
call fcn.00432f90
mov ecx, dword [0x89e864]
push eax
push ebx
call fcn.00432770
push 0xfffffffffffffffc
lea ecx, [esi + 0xa8]
call fcn.00432f90
push eax
lea ecx, [esi + 0xa0]
call fcn.00432f90
mov edx, dword [0x89e864]
push eax
add edx, 0x802f8
push edx
call fcn.00445310
mov ecx, edi
call fcn.00432f90
push eax
mov eax, dword [0x89e864]
movzx ecx, byte [ebx + eax + 0x26652]
lea edi, [eax + ecx*8 + 0x80b38]
call fcn.00418060
lea ecx, [esp + 0x20]
call fcn.00432f90
push eax
add esi, 0x389
push esi
push 0x266
push 0x8a3708
call fcn.0044ee40
push eax
lea edx, [esp + 0x4c]
push edx
call fcn.0056aefc
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
add esp, 0x10
push 2
push 3
lea edx, [esp + 0x48]
push edx
call dword [eax + 0x2c]
jmp 0x4e2425
mov eax, dword [0x89e864]
push 1
lea edi, [eax + ebx*8 + 0x27144]
call fcn.00418060
mov eax, 0xeeaeaea4
lea ecx, [esp + 0x20]
call fcn.00418100
mov edx, dword [0x89e864]
mov ecx, ebx
shl ecx, 6
lea ecx, [ecx + edx + 0x267a4]
call fcn.00432f90
mov ecx, 0x5fc7ac
mov edi, eax
call fcn.00432f90
lea ecx, [esp + 0x20]
add edi, eax
call fcn.00432f90
imul edi, eax
mov ecx, 0x5fc7ac
call fcn.00432f90
mov ecx, eax
mov eax, edi
cdq
idiv ecx
lea edi, [esp + 0x20]
call fcn.00417f50
mov ecx, edi
call fcn.00432f90
mov ecx, dword [0x89e864]
push eax
push ebx
call fcn.00432770
push 1
lea ecx, [esi + 0xa8]
call fcn.00432f90
push eax
lea ecx, [esi + 0xa0]
call fcn.00432f90
mov edx, dword [0x89e864]
push eax
add edx, 0x802f8
push edx
call fcn.00445310
mov ecx, edi
call fcn.00432f90
push eax
mov eax, dword [0x89e864]
movzx ecx, byte [ebx + eax + 0x26652]
lea edi, [eax + ecx*8 + 0x80b38]
call fcn.00418060
lea ecx, [esp + 0x20]
call fcn.00432f90
push eax
add esi, 0x389
push esi
push 0x265
push 0x8a3708
call fcn.0044ee40
push eax
lea edx, [esp + 0x4c]
push edx
call fcn.0056aefc
mov esi, dword [esp + 0x28]
mov eax, dword [esi]
add esp, 0x10
push 3
push 4
lea ecx, [esp + 0x48]
push ecx
mov ecx, esi
call dword [eax + 0x2c]
lea edi, [esi + ebx*8 + 0x11e8]
call fcn.004187d0
lea ecx, [esp + 0x20]
mov dword [esp + 0x5cc], 0xffffffff
call fcn.00417ee0
mov cl, byte [esp + 0xc]
mov edi, dword [esp + 0x18]
call fcn.004fa800
mov ecx, dword [0x89e864]
add ecx, 0x24604
call fcn.00432f90
cmp eax, 1
je 0x4e2476
mov ecx, dword [0x89e864]
add ecx, 0x24604
call fcn.00432f90
cmp eax, 4
jne case.0x4e29f8.50178
movzx eax, byte [esp + 0xc]
mov edx, dword [0x89e864]
mov al, byte [eax + edx + 0x26652]
test al, al
jne 0x4e2508
mov esi, dword [edi]
push 8
push 3
push 0x25c
push 0x8a3708
call fcn.0044ee40
push eax
mov ecx, edi
call dword [esi + 0x2c]
mov edi, dword [0x89e864]
add edi, 0x5801c
call fcn.00432e10
mov ecx, dword [0x89e864]
lea eax, [esp + 0x10]
push eax
add ecx, 0x5801c
mov dword [esp + 0x14], 0
call fcn.00408760
test al, al
je case.0x4e29f8.50178
mov edi, dword [0x89e864]
add edi, 0x5801c
xor eax, eax
call fcn.00417f50
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.0x4e29f8.50178
mov esi, dword [edi]
push 8
push 3
push 0x25d
push 0x8a3708
call fcn.0044ee40
push eax
mov ecx, edi
call dword [esi + 0x2c]
mov edi, dword [0x89e864]
add edi, 0x58024
call fcn.00432e10
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [0x89e864]
add ecx, 0x58024
mov dword [esp + 0x14], 0
call fcn.00408760
test al, al
je case.0x4e29f8.50178
mov edi, dword [0x89e864]
add edi, 0x58024
xor eax, eax
call fcn.00417f50
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 [0x89e864]
mov esi, dword [esp + 0x18]
add edi, 0x58014
mov al, 1
mov byte [esi + 0x10c0], 0
call fcn.004182c0
mov ecx, dword [0x89e864]
movzx eax, byte [ecx + 0x245f3]
dec eax
je 0x4e25d8
dec eax
je 0x4e25cc
dec eax
jne 0x4e25e2
mov dword [ecx + 0x7f868], 0x28
jmp 0x4e25e2
mov dword [ecx + 0x7f868], 0x26
jmp 0x4e25e2
mov dword [ecx + 0x7f868], 0x27
push 1
push str.sudden.mp3
call fcn.0054bb40
mov edx, dword [0x89e864]
add esp, 8
push 6
add edx, 0x802f8
push edx
call fcn.004486f0
mov edi, dword [esi]
push 6
push 2
push 0x267
push 0x8a3708
call fcn.0044ee40
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 [0x89e864]
push 3
add edi, 0x29370
call fcn.00418060
mov edi, dword [esp + 0x18]
add edi, 0x1238
mov ecx, 0x18
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
mov ecx, dword [0x89e864]
add ecx, 0x1aa9c
call fcn.00432f90
mov ecx, dword [0x89e864]
add ecx, 0x1aaa8
mov esi, eax
call fcn.00432f90
cmp esi, eax
je case.0x4e29f8.50178
movzx eax, word [ebx]
mov edi, dword [esp + 0x18]
add edi, 0x14b0
call fcn.00417f50
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 + 0xc]
push 1
push eax
mov eax, dword [0x89e864]
push eax
call fcn.00429770
mov edi, dword [0x89e864]
mov esi, eax
movzx eax, byte [esp + 0xc]
add edi, 0x27368
call fcn.00417f50
test esi, esi
je case.0x4e29f8.50178
movzx eax, word [ebx]
lea edi, [esi + 0xd0]
call fcn.00417f50
lea edi, [esi + 0xa0]
mov ecx, eax
call fcn.00417f00
movzx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0xd8]
call fcn.00417f50
lea edi, [esi + 0xa8]
mov ecx, eax
call fcn.00417f00
mov al, byte [ebx + 2]
add ebx, 2
xor ecx, ecx
inc ebx
cmp al, 1
sete cl
lea edi, [esi + 0xf0]
mov eax, ecx
call fcn.00417f50
mov al, byte [ebx]
inc ebx
cmp al, 1
lea edi, [esi + 0x2c4]
sete al
call fcn.004182c0
lea edi, [esi + 0x2cc]
xor al, al
call fcn.004182c0
movsx eax, word [ebx]
lea edi, [esi + 0x1a8]
call fcn.00417f50
movzx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x254]
call fcn.00417f50
mov dl, byte [ebx + 2]
add ebx, 2
mov byte [esi + 0x200], dl
movsx eax, word [ebx + 1]
inc ebx
lea edi, [esi + 0x1c0]
call fcn.00417f50
movsx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x1c8]
call fcn.00417f50
movsx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x1d0]
call fcn.00417f50
movsx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x1d8]
call fcn.00417f50
movsx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x1e0]
call fcn.00417f50
movsx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x1e8]
call fcn.00417f50
mov edi, dword [0x89e864]
movsx eax, word [ebx + 2]
add ebx, 2
add edi, 0x2704c
call fcn.00417f50
mov edi, dword [0x89e864]
movsx eax, word [ebx + 2]
add ebx, 2
add edi, 0x27054
call fcn.00417f50
mov eax, dword [0x89ee3c]
add ebx, 2
test eax, eax
je 0x4e2854
movzx eax, word [ebx]
lea edi, [esi + 0x8d4]
call fcn.00417f50
add ebx, 2
mov al, byte [ebx]
mov edi, dword [0x89e864]
cmp al, 1
sete al
add edi, 0x27074
call fcn.004182c0
mov eax, dword [0x89e864]
inc ebx
push ebx
add eax, 0x802f8
call fcn.0044e2d0
lea edi, [esi + 0x2b4]
xor al, al
mov byte [esi + 0x4c0], 0
call fcn.004182c0
call fcn.0044d740
cmp al, 1
lea ecx, [esi + 0x2c4]
jne 0x4e2901
call fcn.00418340
add esi, 0x4dc
test al, al
je 0x4e28d8
mov eax, dword [str.fire2]
mov dword [esi], eax
mov cx, word [0x59e058]
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 [0x59e050]
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
call fcn.00418340
test al, al
mov ecx, esi
je 0x4e2918
mov edx, dword [esi]
push str.fire2
call dword [edx + 4]
jmp 0x4e2922
mov eax, dword [esi]
push str.fire1
call dword [eax + 4]
mov ecx, dword [0x89e864]
mov edi, dword [esp + 0x18]
mov esi, dword [edi + 0x10a4]
add ecx, 0x1aa9c
call fcn.00432f90
cmp esi, eax
jne 0x4e296e
mov ecx, dword [0x89e864]
mov edx, dword [ecx + 0x27350]
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
mov eax, dword [0x89e864]
mov cl, byte [esi + eax + 0x2483e]
cmp cl, byte [eax + 0x1aaa4]
je 0x4e2992
mov edx, dword [eax + 0x27350]
mov dword [edx + 0x414], 1
mov ecx, dword [edi + 0x10a4]
mov dl, byte [ecx + eax + 0x2483e]
cmp dl, byte [eax + 0x1aaa4]
jne case.0x4e29f8.50178
mov eax, dword [eax + 0x27350]
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, 0xc801
jg 0x4e321f
je 0x4e30ac
sub eax, 0xc401
cmp eax, 0xb
ja case.0x4e29f8.50178
movzx ecx, byte [eax + 0x4e3448]
jmp dword [ecx*4 + 0x4e3434]
movzx eax, byte [esp + 0xc]
mov edx, dword [0x89e864]
push 1
push eax
push edx
call fcn.00429770
mov edi, dword [0x89e864]
mov esi, eax
movzx eax, byte [esp + 0xc]
add edi, 0x27368
call fcn.00417f50
test esi, esi
je case.0x4e29f8.50178
movzx eax, word [ebx]
lea edi, [esi + 0xd0]
call fcn.00417f50
lea edi, [esi + 0xa0]
mov ecx, eax
call fcn.00417f00
movzx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0xd8]
call fcn.00417f50
lea edi, [esi + 0xa8]
mov ecx, eax
call fcn.00417f00
mov cl, byte [ebx + 2]
add ebx, 2
xor eax, eax
cmp cl, 1
sete al
lea edi, [esi + 0xf0]
call fcn.00417f50
lea edi, [esi + 0x2cc]
mov al, 1
add ebx, 2
call fcn.004182c0
mov ecx, dword [0x89e864]
add ecx, 0x1aa9c
call fcn.00432f90
movzx ecx, byte [esp + 0xc]
cmp ecx, eax
jne 0x4e2ade
mov eax, dword [0x89e864]
mov ecx, dword [eax + 0x80efc]
test ecx, ecx
jne 0x4e2ade
push 5
lea edi, [esi + 0x564]
call fcn.004180b0
mov ecx, dword [0x89e864]
mov dword [ecx + 0x80efc], 1
jmp 0x4e2aeb
lea edi, [esi + 0x564]
xor eax, eax
call fcn.00417f50
movsx eax, word [ebx]
lea edi, [esi + 0x1a8]
call fcn.00417f50
movzx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x254]
call fcn.00417f50
mov dl, byte [ebx + 2]
add ebx, 2
mov byte [esi + 0x200], dl
movsx eax, word [ebx + 1]
inc ebx
lea edi, [esi + 0x1c0]
call fcn.00417f50
movsx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x1c8]
call fcn.00417f50
movsx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x1d0]
call fcn.00417f50
movsx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x1d8]
call fcn.00417f50
movsx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x1e0]
call fcn.00417f50
movsx eax, word [ebx + 2]
add ebx, 2
lea edi, [esi + 0x1e8]
call fcn.00417f50
mov ecx, dword [0x89e864]
add ebx, 2
mov dword [ecx + 0x55ed8], 1
mov dword [ecx + 0x55edc], 0
movsx eax, word [ebx]
lea edi, [ecx + 0x2704c]
call fcn.00417f50
mov edi, dword [0x89e864]
movsx eax, word [ebx + 2]
add ebx, 2
add edi, 0x27054
call fcn.00417f50
mov eax, dword [0x89ee3c]
add ebx, 2
test eax, eax
je 0x4e2be1
movzx eax, word [ebx]
lea edi, [esi + 0x8d4]
call fcn.00417f50
add ebx, 2
mov al, byte [ebx]
mov edi, dword [0x89e864]
cmp al, 1
sete al
add edi, 0x27074
call fcn.004182c0
mov eax, dword [0x89e864]
inc ebx
push ebx
add eax, 0x802f8
call fcn.0044e2d0
lea edi, [esi + 0x2b4]
xor al, al
mov byte [esi + 0x4c0], 0
call fcn.004182c0
call fcn.0044d740
cmp al, 1
jne 0x4e2c56
mov eax, dword [str.sfire]
add esi, 0x4dc
mov dword [esi], eax
mov cx, word [0x59e060]
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 [esi]
push str.sfire
mov ecx, esi
call dword [edx + 4]
mov ecx, dword [0x89e864]
mov edi, dword [esp + 0x18]
mov esi, dword [edi + 0x10a4]
add ecx, 0x1aa9c
call fcn.00432f90
cmp esi, eax
mov eax, dword [0x89e864]
jne 0x4e0fae
mov ecx, dword [eax + 0x27350]
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 eax, dword [esp + 0xc]
push ebx
push eax
push edi
call fcn.004f6f00
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 [0x89e864]
add ecx, 0x1aa9c
call fcn.00432f90
movzx ecx, byte [esp + 0xc]
cmp ecx, eax
je case.0x4e29f8.50178
mov eax, dword [ebx]
cmp eax, 0x20
jle case.0x4e29f8.50178
mov ecx, dword [0x89e864]
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 2]
add ebx, 2
push eax
push 0x186ac
add ecx, 0x80324
mov dword [esp + 0x18], edx
call fcn.005486f0
mov ebx, eax
test ebx, ebx
je case.0x4e29f8.50178
lea edi, [ebx + 0xc0]
mov eax, esi
call fcn.00417f50
mov eax, dword [esp + 0x10]
lea edi, [ebx + 0xc8]
call fcn.00417f50
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 [0x89e864]
add ecx, 0x24604
call fcn.00432f90
cmp eax, 3
je 0x4e302d
mov ecx, dword [esp + 0x18]
lea eax, [ecx + 0x11e8]
mov dword [esp + 0x1c], eax
xor ebx, ebx
mov eax, 0xffffee18
sub eax, ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], eax
jmp 0x4e2da0
mov ecx, dword [esp + 0x1c]
call fcn.00432f90
cmp eax, 2
jl 0x4e3007
mov edi, dword [esp + 0x1c]
xor eax, eax
call fcn.00417f50
mov ecx, dword [0x89e864]
push 1
push ebx
push ecx
call fcn.00429770
mov esi, eax
test esi, esi
je 0x4e3007
mov edx, dword [esp + 0x20]
mov ecx, dword [0x89e864]
mov eax, edi
add edx, eax
push 4
lea edi, [edx + ecx + 0x27144]
call fcn.00418060
lea ecx, [esp + 0x28]
call fcn.00417e00
mov eax, 0xeeaeaf34
lea ecx, [esp + 0x28]
mov dword [esp + 0x5cc], 1
call fcn.00418100
mov edx, dword [0x89e864]
mov eax, dword [esp + 0x10]
lea ecx, [eax + edx + 0x267a4]
call fcn.00432f90
mov ecx, 0x5fc7ac
mov edi, eax
call fcn.00432f90
lea ecx, [esp + 0x28]
add edi, eax
call fcn.00432f90
imul edi, eax
mov ecx, 0x5fc7ac
call fcn.00432f90
mov ecx, eax
mov eax, edi
cdq
idiv ecx
lea edi, [esp + 0x28]
call fcn.00417f50
mov ecx, edi
call fcn.00432f90
mov ecx, dword [0x89e864]
push eax
push ebx
call fcn.00432770
push 4
lea ecx, [esi + 0xa8]
call fcn.00432f90
push eax
lea ecx, [esi + 0xa0]
call fcn.00432f90
mov edx, dword [0x89e864]
push eax
add edx, 0x802f8
push edx
call fcn.00445310
mov ecx, edi
call fcn.00432f90
push eax
mov eax, dword [0x89e864]
movzx ecx, byte [ebx + eax + 0x26652]
lea edi, [eax + ecx*8 + 0x80b38]
call fcn.00418060
lea ecx, [esp + 0x28]
add esi, 0x389
call fcn.00432f90
push eax
push esi
push 0x274
push 0x8a3708
call fcn.0044ee40
push eax
lea edx, [esp + 0x14c]
push edx
call fcn.0056aefc
mov edi, dword [esp + 0x28]
mov eax, dword [edi]
add esp, 0x10
push 3
push 4
lea ecx, [esp + 0x148]
push ecx
mov ecx, edi
call dword [eax + 0x2c]
push ebx
push 0
push edi
call fcn.004fd310
mov edx, dword [0x89e864]
push 7
add edx, 0x802f8
push edx
call fcn.004486f0
mov ecx, dword [0x89e864]
add ecx, 0x1aa9c
call fcn.00432f90
cmp ebx, eax
jne 0x4e2ff3
mov eax, dword [0x89e864]
mov ecx, dword [eax + 0x24548]
inc ecx
push ecx
push esi
push 0x1388
push 0x8a3708
call fcn.0044ee40
push eax
lea edx, [esp + 0x14c]
push edx
call fcn.0056aefc
mov esi, dword [0x89edfc]
add esp, 0x10
push 0x5010
call fcn.004511d0
mov ebx, dword [0x89edfc]
mov eax, dword [ebx + 0x4098]
mov byte [ebx + eax + 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 0x4e2fa8
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 0x4e2fc8
sub eax, edx
lea ecx, [esp + 0x140]
mov edx, eax
push ecx
mov eax, ebx
call fcn.00451220
xor ecx, ecx
call fcn.004512d0
push ebx
call fcn.00451370
mov ebx, dword [esp + 0xc]
lea ecx, [esp + 0x28]
mov dword [esp + 0x5cc], 0xffffffff
call fcn.00417ee0
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
add eax, 0x40
inc ebx
add esi, 8
cmp eax, 0x200
mov dword [esp + 0xc], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], eax
jl 0x4e2da0
mov esi, dword [esp + 0x18]
mov eax, esi
call fcn.004fba90
mov ecx, dword [0x89e864]
add ecx, 0x1aaa8
call fcn.00432f90
mov ecx, dword [0x89e864]
add ecx, 0x1aa9c
mov edi, eax
call fcn.00432f90
cmp eax, edi
jne case.0x4e29f8.50178
mov ecx, dword [0x89e864]
add ecx, 0x272bc
call fcn.00418340
test al, al
jne case.0x4e29f8.50178
lea ecx, [esi + 0x11c8]
call fcn.00418340
test al, al
jne case.0x4e29f8.50178
call fcn.00415c30
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 [0x89e864]
mov bl, byte [ebx]
add ecx, 0x1aa9c
call fcn.00432f90
movzx edx, bl
cmp eax, edx
jne case.0x4e29f8.50178
mov eax, dword [0x89e864]
mov eax, dword [eax + 0x27350]
test eax, eax
je case.0x4e29f8.50178
lea ecx, [eax + 0x2dc]
call fcn.00418340
test al, al
jne case.0x4e29f8.50178
mov ecx, dword [0x89e864]
mov edi, dword [ecx + 0x27350]
add edi, 0x2dc
mov al, 1
call fcn.004182c0
mov esi, dword [0x89edfc]
push 0x4100
call fcn.004511d0
mov eax, dword [0x89edfc]
mov ecx, dword [0x89e864]
mov edx, dword [ecx + 0x27350]
mov edx, dword [edx + 0x414]
mov esi, dword [eax + 0x4098]
mov dword [eax + esi + 0x98], edx
mov esi, dword [eax + 0x4098]
add esi, 4
mov dword [eax + 0x4098], esi
mov ecx, dword [ecx + 0x27350]
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.00451370
mov ebx, 0xc304
mov esi, 0x8a38b0
call fcn.00459870
mov eax, dword [0x89e864]
mov edx, dword [eax + 0x27350]
mov ecx, dword [edx + 0x414]
mov edx, dword [0x8a4424]
mov dword [edx + 0x8a4224], ecx
mov ecx, dword [0x8a4424]
add ecx, 4
mov dword [0x8a4424], ecx
mov eax, dword [eax + 0x27350]
mov dl, byte [eax + 0x410]
mov byte [ecx + 0x8a4224], dl
mov edi, dword [0x8a4424]
inc edi
push esi
or ecx, 0xffffffff
mov dword [0x8a4424], edi
call fcn.00459a50
mov eax, dword [0x89e864]
mov ecx, dword [eax + 0x27350]
cmp dword [ecx + 0x414], 3
jne case.0x4e29f8.50178
lea edx, [esp + 0x30]
push edx
add eax, 0x80a80
push eax
call fcn.00417f80
lea ecx, [esp + 0x30]
call fcn.00417ee0
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 0x4e32a4
dec eax
je 0x4e3265
dec eax
jne case.0x4e29f8.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 + 0x14]
push edx
push eax
push ecx
call fcn.004fc560
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 + 0xc]
mov eax, dword [0x89e864]
push 1
push edx
push eax
call fcn.00429770
test eax, eax
je case.0x4e29f8.50178
lea ecx, [eax + 0x214]
lea edi, [eax + 0x21c]
call fcn.00417f00
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 + 0xc]
push ecx
push edx
call fcn.004fc190
mov ecx, dword [esp + 0x5c4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8