Function at 0x4501f0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x499628
mov eax, dword fs:[0]
push eax
sub esp, 0x7c
mov eax, dword [0x4b900c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x48], ebx
mov ecx, dword [ebx + 8]
push 0x88
call fcn.0046a190
mov ecx, dword [ebx + 8]
push 0x8a
mov dword [ebp - 0x5c], eax
call fcn.0046a190
mov ecx, dword [ebx + 8]
push 0x89
mov dword [ebp - 0x74], eax
call fcn.0046a190
mov ecx, dword [ebx + 8]
push 0x13
mov dword [ebp - 0x60], eax
call fcn.0046a190
mov ecx, dword [ebx + 8]
push 0xf
mov dword [ebp - 0x64], eax
call fcn.0046a190
mov ecx, dword [ebx + 8]
push 0x10
mov dword [ebp - 0x68], eax
call fcn.0046a190
mov ecx, dword [ebx + 8]
push 0x11
mov dword [ebp - 0x6c], eax
call fcn.0046a190
mov ecx, dword [ebx + 8]
push 0x12
mov dword [ebp - 0x78], eax
call fcn.0046a190
mov dword [ebp - 0x3c], eax
lea ecx, [ebx + 0xc]
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 1
push eax
call fcn.0044d8b0
mov ecx, dword [ebx + 8]
push 0x1d
movzx eax, word [eax]
mov dword [ebp - 0x44], eax
call fcn.0046a190
mov ecx, dword [ebx + 8]
push 0x1e
movzx eax, word [eax]
mov dword [ebp - 0x4c], eax
call fcn.0046a190
mov ecx, dword [ebx + 8]
push 0x95
movzx eax, word [eax]
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x58]
push eax
call fcn.0046a050
mov ecx, dword [ebx + 8]
push 0x95
mov al, byte [eax + 2]
mov byte [ebp - 0x2d], al
lea eax, [ebp - 0x58]
push eax
call fcn.0046a050
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
movq qword [ebp - 0x1c], xmm0
lea edi, [ebx + 0x14]
mov dword [ebp - 0x1c], 0
movzx eax, word [eax]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 4], 0
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452ad0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x28], eax
mov eax, str.AltGetAddresses
mov byte [ebp - 4], 1
shr eax, 0x10
mov ecx, str.AltGetAddresses
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x450366
movzx eax, cx
lea ecx, [ebp - 0x28]
push eax
call fcn.004070e0
jmp 0x450375
push 0xf
push str.AltGetAddresses
lea ecx, [ebp - 0x28]
call fcn.004072d0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 2
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
or ebx, 0xffffffff
mov edx, dword [ebp - 0x28]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4503a5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x20750
push 0x27
mov ecx, edi
call fcn.00446870
push 0x2076e
push 0x1c
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452ada
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x28], eax
mov eax, str.UpdateAreaPtr
mov byte [ebp - 4], 3
shr eax, 0x10
mov ecx, str.UpdateAreaPtr
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x450401
movzx eax, cx
lea ecx, [ebp - 0x28]
push eax
call fcn.004070e0
jmp 0x450410
push 0xd
push str.UpdateAreaPtr
lea ecx, [ebp - 0x28]
call fcn.004072d0
push 2
push 8
mov ecx, edi
mov byte [ebp - 4], 4
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x28]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x28]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov dword [esi], 9
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x450454
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452ae4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x28], eax
mov eax, str.AltGetAreaAddresses
mov byte [ebp - 4], 5
shr eax, 0x10
mov ecx, str.AltGetAreaAddresses
mov dword [ebp - 0x38], eax
test eax, eax
jne 0x450494
movzx eax, cx
lea ecx, [ebp - 0x28]
push eax
call fcn.004070e0
jmp 0x4504a3
push 0x13
push str.AltGetAreaAddresses
lea ecx, [ebp - 0x28]
call fcn.004072d0
push 2
push 0x13
mov ecx, edi
mov byte [ebp - 4], 6
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x28]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x28]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov dword [esi], 9
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4504e7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452aee
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x28], eax
mov eax, str.LoopCmdE
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x28]
test eax, 0xffff0000
jne 0x45051f
movzx eax, ax
push eax
call fcn.004070e0
jmp 0x45052b
push 8
push str.LoopCmdE
call fcn.004072d0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 8
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x450558
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x20745
push 0x27
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452af8
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x28], eax
mov eax, str.beginCheck
mov byte [ebp - 4], 9
shr eax, 0x10
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x4505a9
mov eax, str.beginCheck
movzx eax, ax
push eax
mov dword [ebp - 0x20], eax
call fcn.004070e0
jmp 0x4505c0
push 0xa
push str.beginCheck
call fcn.004072d0
mov eax, str.beginCheck
movzx eax, ax
mov dword [ebp - 0x20], eax
push 9
push 0x35
mov ecx, edi
mov byte [ebp - 4], 0xa
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x28]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x28]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4505fe
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x20]
mov ecx, edi
push 0xd
push 0x16
call fcn.00446260
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452b02
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x28], eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x24], 0
jne 0x45063b
push esi
call fcn.004070e0
jmp 0x450647
push 0xa
push str.beginCheck
call fcn.004072d0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xc
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x450674
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
movzx eax, byte [ebp - 0x2d]
mov ecx, edi
or eax, 0x50000
push eax
push 0x27
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452b0c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x24], eax
mov eax, 0x4a6f44
mov byte [ebp - 4], 0xd
shr eax, 0x10
mov ecx, 0x4a6f44
mov dword [ebp - 0x28], eax
test eax, eax
jne 0x4506c7
movzx eax, cx
lea ecx, [ebp - 0x24]
push eax
call fcn.004070e0
jmp 0x4506d6
push 0x12
push 0x4a6f44
lea ecx, [ebp - 0x24]
call fcn.004072d0
push 2
push 8
mov ecx, edi
mov byte [ebp - 4], 0xe
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x24]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x24]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov dword [esi], 9
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45071a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x2076e
push 0x27
mov ecx, edi
call fcn.00446870
push 0x10000
push 2
mov ecx, edi
call fcn.00446870
push 0xd
push 0x22
mov ecx, edi
call fcn.00446260
mov eax, dword [ebp - 0x2c]
mov ecx, edi
inc eax
movzx eax, ax
or eax, 0x30000
push eax
push 0x27
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452b16
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x24], eax
mov eax, str.lbExit2
mov byte [ebp - 4], 0xf
shr eax, 0x10
mov ecx, str.lbExit2
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x450797
movzx eax, cx
lea ecx, [ebp - 0x24]
push eax
call fcn.004070e0
jmp 0x4507a6
push 7
push str.lbExit2
lea ecx, [ebp - 0x24]
call fcn.004072d0
push 9
push 0x35
mov ecx, edi
mov byte [ebp - 4], 0x10
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x24]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x24]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4507e4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x20001
push 0x1c
mov ecx, edi
call fcn.00446870
mov ecx, dword [ebp - 0x2c]
movzx eax, cx
mov ecx, edi
or eax, 0x30000
push eax
push 0x27
call fcn.00446870
push 0x20000
push 0x1c
mov ecx, edi
call fcn.00446870
push 0x50000
push 0x28
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452b20
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x24], eax
mov eax, str.lbLoopFindPage
mov byte [ebp - 4], 0x11
shr eax, 0x10
mov ecx, str.lbLoopFindPage
mov dword [ebp - 0x70], eax
test eax, eax
jne 0x450863
movzx eax, cx
lea ecx, [ebp - 0x24]
push eax
call fcn.004070e0
jmp 0x450872
push 0xe
push str.lbLoopFindPage
lea ecx, [ebp - 0x24]
call fcn.004072d0
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x12
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45089f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x80000
push 0x27
mov ecx, edi
call fcn.00446870
push 0x20725
push 0x2a
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452b2a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.lbIncY
mov byte [ebp - 4], 0x13
shr eax, 0x10
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x4508fe
mov eax, str.lbIncY
movzx eax, ax
push eax
mov dword [ebp - 0x24], eax
call fcn.004070e0
jmp 0x450915
push 6
push str.lbIncY
call fcn.004072d0
mov eax, str.lbIncY
movzx eax, ax
mov dword [ebp - 0x24], eax
push 9
push 0x35
mov ecx, edi
mov byte [ebp - 4], 0x14
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45095b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x24], esi
jmp 0x45095e
mov esi, dword [ebp - 0x24]
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452b34
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x20]
cmp dword [ebp - 0x2c], 0
jne 0x45098d
push esi
call fcn.004070e0
jmp 0x450999
push 6
push str.lbIncY
call fcn.004072d0
push 9
push 0x24
mov ecx, edi
mov byte [ebp - 4], 0x16
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4509d7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xd
push 0x21
mov ecx, edi
call fcn.00446260
push 0xd
push 5
mov ecx, edi
call fcn.00446260
push 0x20000
push 0x17
mov ecx, edi
call fcn.00446870
push 0x2076c
push 0x1c
mov ecx, edi
call fcn.00446870
push 0x50000
push 0x27
mov ecx, edi
call fcn.00446870
push 0x20001
push 0x17
mov ecx, edi
call fcn.00446870
push 0x2076d
push 0x1c
mov ecx, edi
call fcn.00446870
push 0xd
push 0x31
mov ecx, edi
call fcn.00446260
push 0x50001
push 0x27
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452b3e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.lbExit1
mov byte [ebp - 4], 0x17
shr eax, 0x10
mov ecx, str.lbExit1
mov dword [ebp - 0x40], eax
test eax, eax
jne 0x450a8c
movzx eax, cx
lea ecx, [ebp - 0x20]
push eax
call fcn.004070e0
jmp 0x450a9b
push 7
push str.lbExit1
lea ecx, [ebp - 0x20]
call fcn.004072d0
push 9
push 0x34
mov ecx, edi
mov byte [ebp - 4], 0x18
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x450ad9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452b48
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x20]
cmp dword [ebp - 0x2c], 0
jne 0x450b0b
mov eax, dword [ebp - 0x24]
push eax
call fcn.004070e0
jmp 0x450b17
push 6
push str.lbIncY
call fcn.004072d0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x1a
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x450b44
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xd
push 0x31
mov ecx, edi
call fcn.00446260
push 0xd
push 0x31
mov ecx, edi
call fcn.00446260
push 0xd
push 0x31
mov ecx, edi
call fcn.00446260
push 0xd
push 0x31
mov ecx, edi
call fcn.00446260
push 0x80000
push 0x27
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452b52
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x20]
cmp dword [ebp - 0x70], 0
jne 0x450bb5
mov eax, str.lbLoopFindPage
movzx eax, ax
push eax
call fcn.004070e0
jmp 0x450bc1
push 0xe
push str.lbLoopFindPage
call fcn.004072d0
push 9
push 4
mov ecx, edi
mov byte [ebp - 4], 0x1c
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x450bff
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x50000
push 0x27
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452b5c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x40], 0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x1d
jne 0x450c44
mov eax, str.lbExit1
movzx eax, ax
push eax
call fcn.004070e0
jmp 0x450c50
push 7
push str.lbExit1
call fcn.004072d0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x1e
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x450c7d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x20745
push 0x1c
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452b66
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x34], 0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x1f
jne 0x450cc2
mov eax, str.lbExit2
movzx eax, ax
push eax
call fcn.004070e0
jmp 0x450cce
push 7
push str.lbExit2
call fcn.004072d0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x20
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x450cfb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x207fb
push 0x27
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452b70
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x20]
cmp dword [ebp - 0x28], 0
jne 0x450d40
mov eax, 0x4a6f44
movzx eax, ax
push eax
call fcn.004070e0
jmp 0x450d4c
push 0x12
push 0x4a6f44
call fcn.004072d0
push 2
push 0x13
mov ecx, edi
mov byte [ebp - 4], 0x22
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov dword [esi], 9
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x450d90
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452b7a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, 0x4a70dc
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x20]
test eax, 0xffff0000
jne 0x450dc8
movzx eax, ax
push eax
call fcn.004070e0
jmp 0x450dd4
push 0xb
push 0x4a70dc
call fcn.004072d0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x24
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x450e01
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x50001
push 0x27
mov ecx, edi
call fcn.00446870
push 0x20023
push 0x1c
mov ecx, edi
call fcn.00446870
push 0x20014
push 0x1c
mov ecx, edi
call fcn.00446870
push 0x50003
push 0x27
mov ecx, edi
call fcn.00446870
push 0x2049f
push 0x1c
mov ecx, edi
call fcn.00446870
push 0x20039
push 0x27
mov ecx, edi
call fcn.00446870
push 0x50002
push 0x2a
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452b84
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.lbPutBehind
mov byte [ebp - 4], 0x25
shr eax, 0x10
mov ecx, str.lbPutBehind
mov dword [ebp - 0x40], eax
test eax, eax
jne 0x450ea3
movzx eax, cx
lea ecx, [ebp - 0x20]
push eax
call fcn.004070e0
jmp 0x450eb2
push 0xb
push str.lbPutBehind
lea ecx, [ebp - 0x20]
call fcn.004072d0
push 9
push 0x33
mov ecx, edi
mov byte [ebp - 4], 0x26
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x450ef0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x20756
push 0x27
mov ecx, edi
call fcn.00446870
push 0x50002
push 0x2a
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452b8e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.lbStrType
mov byte [ebp - 4], 0x27
shr eax, 0x10
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x450f4f
mov eax, str.lbStrType
movzx eax, ax
push eax
mov dword [ebp - 0x24], eax
call fcn.004070e0
jmp 0x450f66
push 9
push str.lbStrType
call fcn.004072d0
mov eax, str.lbStrType
movzx eax, ax
mov dword [ebp - 0x24], eax
push 9
push 0x24
mov ecx, edi
mov byte [ebp - 4], 0x28
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x450fa4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x24]
mov ecx, edi
push 0x10000
push 0x11
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452b98
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x34], 0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x29
jne 0x450fe4
push esi
call fcn.004070e0
jmp 0x450ff0
push 9
push str.lbStrType
call fcn.004072d0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x2a
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45101d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x20039
push 0x1c
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452ba2
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x40], 0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x2b
jne 0x451062
mov eax, str.lbPutBehind
movzx eax, ax
push eax
call fcn.004070e0
jmp 0x45106e
push 0xb
push str.lbPutBehind
call fcn.004072d0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x2c
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45109b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x50020
push 0x27
mov ecx, edi
call fcn.00446870
push 0x203ca
push 0x1c
mov ecx, edi
call fcn.00446870
push 0x50002
push 0x27
mov ecx, edi
call fcn.00446870
push 0x200fe
push 0x1c
mov ecx, edi
call fcn.00446870
push 0xd
push 0x16
mov ecx, edi
call fcn.00446260
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452bac
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, 0x4a7144
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x20]
test eax, 0xffff0000
jne 0x451116
movzx eax, ax
push eax
call fcn.004070e0
jmp 0x451122
push 0xc
push 0x4a7144
call fcn.004072d0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x2e
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45114f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x5002f
push 0x27
mov ecx, edi
call fcn.00446870
push 0x30016
push 0x1c
mov ecx, edi
call fcn.00446870
push 0x50001
push 0x27
mov ecx, edi
call fcn.00446870
push 0x3000f
push 0x1c
mov ecx, edi
call fcn.00446870
push 0x40076
push 0x27
mov ecx, edi
call fcn.00446870
push 0x3006e
push 0x1c
mov ecx, edi
call fcn.00446870
push 0x4008f
push 0x27
mov ecx, edi
call fcn.00446870
push 0x30087
push 0x1c
mov ecx, edi
call fcn.00446870
push 0x400d7
push 0x27
mov ecx, edi
call fcn.00446870
push 0x300cf
push 0x1c
mov ecx, edi
call fcn.00446870
push 0x20398
push 0x28
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452bb6
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.lbNextVO
mov byte [ebp - 4], 0x2f
shr eax, 0x10
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x45122c
mov eax, str.lbNextVO
movzx eax, ax
push eax
mov dword [ebp - 0x24], eax
call fcn.004070e0
jmp 0x451243
push 8
push str.lbNextVO
call fcn.004072d0
mov eax, str.lbNextVO
movzx eax, ax
mov dword [ebp - 0x24], eax
push 9
push 0x34
mov ecx, edi
mov byte [ebp - 4], 0x30
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x451281
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x24]
mov ecx, edi
push 0x2039d
push 0x1c
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452bc0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x34], 0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x31
jne 0x4512c1
push esi
call fcn.004070e0
jmp 0x4512cd
push 8
push str.lbNextVO
call fcn.004072d0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x32
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4512fa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xd
push 0x20
mov ecx, edi
call fcn.00446260
push 0x4039a
push 0x1c
mov ecx, edi
call fcn.00446870
push 0x20398
push 0x2f
mov ecx, edi
call fcn.00446870
push 0x50004
push 0x27
mov ecx, edi
call fcn.00446870
push 0x200fe
push 0x1c
mov ecx, edi
call fcn.00446870
push 0xd
push 0x16
mov ecx, edi
call fcn.00446260
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452bca
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.AltFindAreaPointer
mov byte [ebp - 4], 0x33
shr eax, 0x10
mov ecx, str.AltFindAreaPointer
mov dword [ebp - 0x40], eax
test eax, eax
jne 0x451388
movzx eax, cx
lea ecx, [ebp - 0x20]
push eax
call fcn.004070e0
jmp 0x451397
push 0x12
push str.AltFindAreaPointer
lea ecx, [ebp - 0x20]
call fcn.004072d0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x34
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4513c4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x2075f
push 0x28
mov ecx, edi
call fcn.00446870
mov ecx, dword [ebp - 0x4c]
movzx eax, cx
mov ecx, edi
or eax, 0x40000
push eax
push 0x27
call fcn.00446870
push 0xd
push 5
mov ecx, edi
call fcn.00446260
push 0x20760
push 0x17
mov ecx, edi
call fcn.00446870
push 0xd
push 0x23
mov ecx, edi
call fcn.00446260
mov ecx, dword [ebp - 0x50]
movzx eax, cx
mov ecx, edi
or eax, 0x40000
push eax
push 0x27
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452bd4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x54], 0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x35
jne 0x451457
mov eax, str.UpdateAreaPtr
movzx eax, ax
push eax
call fcn.004070e0
jmp 0x451463
push 0xd
push str.UpdateAreaPtr
call fcn.004072d0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x36
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x451490
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xd
push 0x12
mov ecx, edi
call fcn.00446260
push 0x5007f
push 9
mov ecx, edi
call fcn.00446870
push 0xd
push 0x23
mov ecx, edi
call fcn.00446260
mov ecx, dword [ebp - 0x44]
movzx eax, cx
mov ecx, edi
or eax, 0x40000
push eax
push 0x27
call fcn.00446870
push 0x207fb
push 0x1c
mov ecx, edi
call fcn.00446870
push 0xd
push 0x19
mov ecx, edi
call fcn.00446260
push 0xd
push 0x16
mov ecx, edi
call fcn.00446260
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452bde
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x38], 0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x37
jne 0x451524
mov eax, str.AltGetAreaAddresses
movzx eax, ax
push eax
call fcn.004070e0
jmp 0x451530
push 0x13
push str.AltGetAreaAddresses
call fcn.004072d0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x38
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45155d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x207fb
push 0x27
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452be8
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 0x39
lea ecx, [ebp - 0x20]
cmp dword [ebp - 0x28], 0
jne 0x4515a5
mov eax, 0x4a6f44
movzx eax, ax
push eax
mov dword [ebp - 0x24], eax
call fcn.004070e0
jmp 0x4515bc
push 0x12
push 0x4a6f44
call fcn.004072d0
mov eax, 0x4a6f44
movzx eax, ax
mov dword [ebp - 0x24], eax
push 2
push 8
mov ecx, edi
mov byte [ebp - 4], 0x3a
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov dword [esi], 9
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x451606
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x68]
mov ecx, edi
push 2
push 8
movzx esi, word [eax]
call fcn.00446260
push 0x50001
push 0x27
mov ecx, edi
mov word [eax + 0xa], si
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452bf2
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 0x3b
lea ecx, [ebp - 0x20]
cmp dword [ebp - 0x28], 0
jne 0x45165a
push dword [ebp - 0x24]
call fcn.004070e0
jmp 0x451666
push 0x12
push 0x4a6f44
call fcn.004072d0
push 2
push 0x13
mov ecx, edi
mov byte [ebp - 4], 0x3c
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov dword [esi], 9
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4516aa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452bfc
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.AltProcessAreaData
mov byte [ebp - 4], 0x3d
shr eax, 0x10
mov ecx, str.AltProcessAreaData
mov dword [ebp - 0x4c], eax
test eax, eax
jne 0x4516ea
movzx eax, cx
lea ecx, [ebp - 0x20]
push eax
call fcn.004070e0
jmp 0x4516f9
push 0x12
push str.AltProcessAreaData
lea ecx, [ebp - 0x20]
call fcn.004072d0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x3e
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x451726
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x207fb
push 0x27
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452c06
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0x20]
cmp dword [ebp - 0x28], 0
jne 0x451765
push dword [ebp - 0x24]
call fcn.004070e0
jmp 0x45177c
push 0x12
push 0x4a6f44
call fcn.004072d0
mov eax, 0x4a6f44
movzx eax, ax
mov dword [ebp - 0x24], eax
push 2
push 8
mov ecx, edi
mov byte [ebp - 4], 0x40
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov dword [esi], 9
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4517c6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x6c]
mov ecx, edi
push 2
push 8
movzx esi, word [eax]
call fcn.00446260
push 0x50001
push 0x27
mov ecx, edi
mov word [eax + 0xa], si
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452c10
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 0x41
lea ecx, [ebp - 0x20]
cmp dword [ebp - 0x28], 0
jne 0x45181a
push dword [ebp - 0x24]
call fcn.004070e0
jmp 0x451826
push 0x12
push 0x4a6f44
call fcn.004072d0
push 2
push 0x13
mov ecx, edi
mov byte [ebp - 4], 0x42
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov dword [esi], 9
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45186a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452c1a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.AltEnemyCore
mov byte [ebp - 4], 0x43
shr eax, 0x10
mov ecx, str.AltEnemyCore
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x4518aa
movzx eax, cx
lea ecx, [ebp - 0x20]
push eax
call fcn.004070e0
jmp 0x4518b9
push 0xc
push str.AltEnemyCore
lea ecx, [ebp - 0x20]
call fcn.004072d0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x44
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4518e6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x207fb
push 0x27
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452c24
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 0x45
lea ecx, [ebp - 0x20]
cmp dword [ebp - 0x28], 0
jne 0x451925
push dword [ebp - 0x24]
call fcn.004070e0
jmp 0x45193c
push 0x12
push 0x4a6f44
call fcn.004072d0
mov eax, 0x4a6f44
movzx eax, ax
mov dword [ebp - 0x24], eax
push 2
push 8
mov ecx, edi
mov byte [ebp - 4], 0x46
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov dword [esi], 9
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x451986
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x3c]
mov ecx, edi
push 2
push 8
movzx esi, word [eax]
call fcn.00446260
push 0x50001
push 0x27
mov ecx, edi
mov word [eax + 0xa], si
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452c2e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 0x47
lea ecx, [ebp - 0x20]
cmp dword [ebp - 0x28], 0
jne 0x4519da
push dword [ebp - 0x24]
call fcn.004070e0
jmp 0x4519e6
push 0x12
push 0x4a6f44
call fcn.004072d0
push 2
push 0x13
mov ecx, edi
mov byte [ebp - 4], 0x48
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov dword [esi], 9
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x451a2a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452c38
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.SoundEngine
mov byte [ebp - 4], 0x49
shr eax, 0x10
mov ecx, str.SoundEngine
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x451a6a
movzx eax, cx
lea ecx, [ebp - 0x20]
push eax
call fcn.004070e0
jmp 0x451a79
push 0xb
push str.SoundEngine
lea ecx, [ebp - 0x20]
call fcn.004072d0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x4a
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x451aa6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x50002
push 0x27
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452c42
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.UnsafeSwitchHiBank
mov byte [ebp - 4], 0x4b
shr eax, 0x10
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x451af7
mov eax, str.UnsafeSwitchHiBank
movzx eax, ax
push eax
mov dword [ebp - 0x24], eax
call fcn.004070e0
jmp 0x451b0e
push 0x12
push str.UnsafeSwitchHiBank
call fcn.004072d0
mov eax, str.UnsafeSwitchHiBank
movzx eax, ax
mov dword [ebp - 0x24], eax
push 2
push 8
mov ecx, edi
mov byte [ebp - 4], 0x4c
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov dword [esi], 9
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x451b58
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x64]
mov ecx, edi
push 2
push 8
movzx esi, word [eax]
call fcn.00446260
push 0x50000
push 0x27
mov ecx, edi
mov word [eax + 0xa], si
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452c4c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 0x4d
lea ecx, [ebp - 0x20]
cmp dword [ebp - 0x2c], 0
jne 0x451bac
push dword [ebp - 0x24]
call fcn.004070e0
jmp 0x451bb8
push 0x12
push str.UnsafeSwitchHiBank
call fcn.004072d0
push 2
push 0x13
mov ecx, edi
mov byte [ebp - 4], 0x4e
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov dword [esi], 9
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x451bfc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452c56
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.InitCHR
mov byte [ebp - 4], 0x4f
shr eax, 0x10
mov ecx, str.InitCHR
mov dword [ebp - 0x44], eax
test eax, eax
jne 0x451c3c
movzx eax, cx
lea ecx, [ebp - 0x20]
push eax
call fcn.004070e0
jmp 0x451c4b
push 7
push str.InitCHR
lea ecx, [ebp - 0x20]
call fcn.004072d0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x50
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x451c78
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x50000
push 0x27
mov ecx, edi
call fcn.00446870
push 0x2a000
push 0x1c
mov ecx, edi
call fcn.00446870
push 0xd
push 0x22
mov ecx, edi
call fcn.00446260
push 0xd
push 5
mov ecx, edi
call fcn.00446260
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452c60
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.LoopInitChr1
mov byte [ebp - 4], 0x51
shr eax, 0x10
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x38], eax
test eax, eax
jne 0x451cea
mov eax, str.LoopInitChr1
movzx esi, ax
push esi
call fcn.004070e0
jmp 0x451cfe
push 0xc
push str.LoopInitChr1
call fcn.004072d0
mov eax, str.LoopInitChr1
movzx esi, ax
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x52
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x451d2b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x28000
push 0x1e
mov ecx, edi
call fcn.00446870
push 0x28001
push 0x1c
mov ecx, edi
call fcn.00446870
push 0x50002
push 0x17
mov ecx, edi
call fcn.00446870
push 0xd
push 0x30
mov ecx, edi
call fcn.00446260
push 0x50002
push 0x2b
mov ecx, edi
call fcn.00446870
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452c6a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x38], 0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x53
jne 0x451d9d
push esi
call fcn.004070e0
jmp 0x451da9
push 0xc
push str.LoopInitChr1
call fcn.004072d0
push 9
push 0x34
mov ecx, edi
mov byte [ebp - 4], 0x54
call fcn.00446260
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x20]
push eax
call fcn.00446790
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov word [esi + 0xa], ax
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x451de7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xd
push 5
mov ecx, edi
call fcn.00446260
call fcn.00404b00
mov ecx, eax
test ecx, ecx
je 0x452c74
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.LoopInitChr2
mov byte [ebp - 4], 0x55
shr eax, 0x10
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x38], eax
test eax, eax
jne 0x451e32
mov eax, str.LoopInitChr2
movzx esi, ax
push esi
call fcn.004070e0
jmp 0x451e46
push 0xc
push str.LoopInitChr2
call fcn.004072d0
mov eax, str.LoopInitChr2
movzx esi, ax
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x56
push eax
mov ecx, edi
call fcn.00446470
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x451e73
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
push 0x80004005
call fcn.004048d0
call fcn.004821b3
int3