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

Disassembly:
sub esp, 0xe4
mov eax, dword [esp + 0x108]
push ebx
mov ebx, dword [esp + 0xf0]
push ebp
mov ebp, dword [esp + 0xf0]
push esi
push edi
mov dword [esp + 0x28], eax
movsx eax, word [ebp + 0x28]
mov edi, ecx
push 1
mov ecx, dword [ebx + 0xaf0]
sub eax, 0x2710
push ecx
mov ecx, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x90], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0xb4], 1
call fcn.004644b0
mov esi, dword [esp + 0x108]
mov dword [esp + 0x9c], eax
mov ecx, edi
movsx edx, word [esi + 2]
movsx eax, word [esi]
push edx
push eax
call fcn.00472c10
movsx ecx, word [esi + 2]
movsx edx, word [esi]
push ecx
push edx
mov ecx, edi
mov dword [esp + 0xc0], eax
call fcn.00472cf0
movsx ecx, word [esi]
mov dword [esp + 0xa8], eax
movsx eax, word [esi + 2]
push eax
push ecx
mov ecx, edi
call fcn.00472ca0
mov ecx, dword [esp + 0x100]
mov dword [esp + 0x74], eax
cmp byte [ebp + 0x30], 0x36
jne 0x45472b
mov ax, word [ebx + 0x852]
mov edx, eax
and edx, 0x200
test dx, dx
je 0x4546f5
mov ecx, dword [esp + 0x10c]
push 0
push 0
push 0x11e
call fcn.0043fc10
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xe4
ret 0x30
or ah, 2
mov word [ebx + 0x852], ax
mov edx, dword [ecx + 0x94]
mov eax, dword [ecx + 0x44]
mov esi, dword [ebp + 0x38]
add edx, eax
mov eax, 0x51eb851f
mul edx
shr edx, 4
add edx, esi
lea edx, [edx + edx*4]
lea eax, [edx + edx*4]
lea eax, [eax + eax*4]
shl eax, 3
mov dword [ebx + 0x93c], eax
mov edx, dword [esp + 0x120]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x4548ed
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea ebx, [esp + 0xc5]
mov edx, ecx
mov esi, edi
mov edi, ebx
lea eax, [esp + 0x3c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
lea edx, [esp + 0xc8]
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x3c]
lea ecx, [esp + 0x54]
push ecx
push edx
lea ecx, [esi + 0x31dc]
call fcn.00488210
test eax, eax
jne 0x4547c1
lea eax, [esp + 0x24]
lea ecx, [esp + 0x50]
push eax
push ecx
mov ecx, dword [esi + 0x32c8]
lea edx, [esp + 0xcc]
push edx
add ecx, 0x40
call fcn.0040a290
test eax, eax
jne 0x4547c1
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xe4
ret 0x30
mov esi, dword [esp + 0x108]
mov ebx, dword [esp + 0x52]
movsx ecx, bx
mov di, word [esi + 2]
mov si, word [esi]
movsx eax, di
sub eax, ecx
mov ebp, dword [esp + 0x50]
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
movsx eax, si
movsx edx, bp
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jle 0x4547f9
mov ecx, eax
mov eax, dword [esp + 0x108]
mov dl, byte [eax + 4]
mov al, byte [esp + 0x54]
cmp dl, al
je 0x45482e
test dl, dl
jne 0x454819
cmp bp, si
jle 0x454819
cmp bx, di
jg 0x454827
test al, al
jne 0x45482e
cmp si, bp
jle 0x45482e
cmp di, bx
jle 0x45482e
mov edx, 1
jmp 0x454830
xor edx, edx
mov eax, dword [esp + 0x88]
add edx, ecx
cmp edx, eax
jle 0x454870
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 0x3664]
test eax, eax
jne 0x454860
mov ecx, dword [esp + 0x10c]
push 0
push 0
push 0x15f
call fcn.0043fc10
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xe4
ret 0x30
mov esi, dword [esp + 0x108]
lea edx, [esp + 0x50]
push edx
push esi
call dword [sym.imp.Staff2.dll_char___cdecl_STAFFGetDirection_struct_PIS___struct_PIS__]
add esp, 8
cmp al, 5
jne 0x45488c
mov al, 2
mov ecx, dword [esp + 0x104]
mov byte [ecx + 0x18], al
mov edx, dword [esp + 0x50]
mov dword [esi], edx
mov ax, word [esp + 0x54]
mov word [esi + 4], ax
movsx eax, word [esp + 0x114]
cmp eax, 0x176
jg 0x4548cf
jne 0x4548cf
mov eax, dword [esp + 0x88]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esp + 0x88], eax
jmp 0x4548ed
mov ecx, dword [esp + 0x88]
mov eax, 0x55555556
add ecx, ecx
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x88], edx
mov esi, dword [esp + 0xf8]
mov edi, dword [esp + 0x10c]
mov al, byte [esi]
cmp al, 1
mov eax, dword [esp + 0x110]
je 0x454920
test eax, eax
jbe 0x454938
cmp dword [esp + 0x124], 1
jne 0x454938
push eax
mov ecx, edi
call fcn.004396e0
jmp 0x454938
mov ecx, dword [esp + 0xfc]
mov dword [ecx + 0x7a8], 0
mov ecx, edi
call fcn.00439d10
mov edx, dword [esp + 0x100]
mov ebx, 0xfff7
mov dword [edx + 0x78], 0
mov al, byte [esi + 0x30]
test al, al
je 0x454956
cmp al, 0x4e
jne 0x454992
push 1
push 1
push 1
mov ecx, edi
call fcn.0042cb70
mov esi, dword [esp + 0x104]
push 1
push 0
push 0x13
and word [esi + 0x1a], 0xfffd
mov ecx, edi
call fcn.0042cb70
and word [esi + 0x1c], bx
push 1
push 0
push 0x23
mov ecx, edi
call fcn.0042cb70
and word [esi + 0x1e], bx
mov esi, dword [esp + 0x38]
lea eax, [esp + 0x3c]
lea edx, [esp + 0x50]
push eax
mov eax, dword [esp + 0x11c]
push edx
mov edx, dword [esp + 0x90]
push eax
mov eax, dword [esp + 0x114]
push edx
lea edx, [esp + 0xc0]
lea ecx, [esi + 0x31dc]
push eax
push edx
mov dword [esp + 0xb0], ecx
call fcn.00488600
test eax, eax
je 0x45b7f4
add esi, 0x323c
mov dword [esp + 0xc0], esi
mov ecx, dword [esp + 0x108]
lea eax, [esp + 0x50]
push eax
push ecx
mov ecx, dword [esp + 0xc8]
call fcn.00486030
test eax, eax
je 0x45b7b9
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x3f74]
lea ebp, [eax + 0x37d8]
lea ecx, [eax + 0x42d0]
mov dword [esp + 0xb4], edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], ecx
mov edx, dword [ecx + 0x60]
test edx, edx
je 0x45b7b9
cmp dword [eax + 0x43a4], 1
jne 0x45b7b9
mov ecx, dword [esp + 0xfc]
mov eax, dword [ebp + 0xaf0]
mov edi, dword [esp + 0x38]
push 1
mov edx, dword [ecx + 0xaf0]
push eax
push edx
mov ecx, edi
call fcn.00464360
movsx ecx, word [esp + 0x50]
mov dword [esp + 0x84], eax
mov dword [esp + 0x44], 1
movsx eax, word [esp + 0x52]
push eax
push ecx
mov ecx, edi
call fcn.00472c10
movsx edx, word [esp + 0x52]
mov dword [esp + 0x10], eax
push edx
movsx eax, word [esp + 0x54]
push eax
mov ecx, edi
call fcn.00472cf0
movsx ecx, word [esp + 0x52]
movsx edx, word [esp + 0x50]
push ecx
push edx
mov ecx, edi
mov dword [esp + 0x9c], eax
call fcn.00472ca0
mov ebx, dword [esp + 0x10c]
mov esi, eax
cmp ebx, dword [esp + 0x3c]
je 0x45b7b9
mov eax, dword [ebp + 0xaf0]
push 1
push eax
mov ecx, edi
call fcn.004644b0
mov ecx, dword [esp + 0x9c]
cmp ecx, eax
je 0x454b07
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x45b7b9
mov eax, dword [esp + 0x94]
test eax, eax
jne 0x454b1f
jmp 0x45b7b9
cmp ecx, 1
jne 0x454b1f
cmp eax, ecx
jne 0x454b1f
mov eax, dword [esp + 0x84]
test eax, eax
je 0x45b7b9
mov ecx, dword [esp + 0xf8]
cmp byte [ecx + 0x30], 0x18
nop
nop
nop
nop
nop
nop
mov eax, dword [ebx + 0x21b0]
mov ecx, dword [esp + 0x3c]
test eax, eax
jle 0x454b4a
cmp eax, dword [ecx + 0x21b0]
je 0x45b7b9
mov al, byte [ebp + 0x24]
test al, al
jl 0x454d30
cmp al, 9
jg 0x454d30
cmp dword [ecx + 0x43a4], 2
je 0x45b7b9
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x454b82
cmp dword [edi + 0x32c4], 0x4e
je 0x45b7b9
mov edx, dword [ebp + 0x980]
test edx, edx
jne 0x454c4e
mov eax, dword [ebp + 0xa3c]
test eax, eax
jne 0x454c4e
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x454c4e
mov eax, dword [esp + 0x74]
mov ebx, 1
cmp eax, ebx
je 0x45b7b9
cmp esi, ebx
je 0x45b7b9
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xa8]
cmp eax, ecx
jne 0x45b7b9
cmp dword [esp + 0xb8], ebx
je 0x45b7b9
cmp dword [esp + 0x10], ebx
je 0x45b7b9
test eax, eax
je 0x454bfb
test ecx, ecx
jne 0x454c4e
mov eax, dword [edi + 0x3664]
cmp eax, 2
je 0x454c15
cmp eax, 3
je 0x454c15
cmp eax, 4
mov ecx, 0xf
jne 0x454c1a
mov ecx, 0x14
mov esi, dword [esp + 0xfc]
cmp dword [esi + 0x20], ecx
jbe 0x45b7b9
cmp eax, 2
je 0x454c3e
cmp eax, 3
je 0x454c3e
cmp eax, 4
mov eax, 0xf
jne 0x454c43
mov eax, 0x14
cmp dword [ebp + 0x20], eax
jbe 0x45b7b9
jmp 0x454c55
mov esi, dword [esp + 0xfc]
mov eax, dword [esi + 0x980]
test eax, eax
jbe 0x454c67
test edx, edx
je 0x45b7b9
mov eax, dword [esi + 0xa3c]
test eax, eax
ja 0x45b7b9
mov eax, dword [esp + 0x11c]
test eax, eax
je 0x45b7b9
mov ebx, dword [esp + 0x28]
mov al, byte [ebx + 0x1c]
and al, 8
cmp al, 8
jne 0x454c99
test edx, edx
je 0x45b7b9
test edx, edx
jne 0x454d34
mov eax, dword [ebp + 0xa3c]
test eax, eax
jne 0x454d34
mov eax, dword [esp + 0xa8]
test eax, eax
jne 0x454d34
mov eax, dword [esp + 0x94]
test eax, eax
jne 0x454d34
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x454d34
mov eax, dword [esp + 0xb8]
test eax, eax
jne 0x454d34
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x454d34
mov al, byte [esi + 0x24]
test al, al
jl 0x454d34
cmp al, 8
jg 0x454d34
cmp byte [ebp + 0x24], 8
jg 0x454d34
mov esi, dword [esp + 0xfc]
push ebp
push esi
mov ecx, edi
call fcn.00473630
test eax, eax
jne 0x454d34
mov ecx, dword [esp + 0x3c]
push esi
push ecx
push ebp
mov ecx, edi
call fcn.00473680
mov ecx, dword [esp + 0x3c]
call fcn.004400b0
test eax, eax
jne 0x454d34
mov ecx, dword [esp + 0x3c]
push 3
call fcn.0043a710
jmp 0x454d34
mov ebx, dword [esp + 0x28]
mov dx, word [ebx + 0x1c]
xor ebp, ebp
and edx, 0x100
mov dword [esp + 0x60], ebp
cmp edx, 0x100
mov edx, dword [esp + 0x1c]
jne 0x454e15
mov eax, dword [edx + 0x980]
test eax, eax
jne 0x454e15
mov eax, dword [edx + 0xa3c]
test eax, eax
jne 0x454e15
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x94]
mov edx, dword [eax + 0x44]
add ecx, edx
cmp ecx, 0x1b58
mov eax, ecx
jb 0x454d8e
mov eax, 0x1b58
lea edx, [eax + eax*2]
mov eax, 0x5d9f7391
mul edx
shr edx, 7
add edx, 0x14
cmp edx, 0x50
jbe 0x454daa
mov esi, 0x50
jmp 0x454df6
cmp ecx, 0x1b58
mov eax, ecx
jb 0x454db9
mov eax, 0x1b58
lea edx, [eax + eax*2]
mov eax, 0x5d9f7391
mul edx
shr edx, 7
add edx, 0x14
cmp edx, 0x14
jae 0x454dd5
mov esi, 0x14
jmp 0x454df6
cmp ecx, 0x1b58
mov eax, ecx
jb 0x454de4
mov eax, 0x1b58
lea ecx, [eax + eax*2]
mov eax, 0x5d9f7391
mul ecx
mov esi, edx
shr esi, 7
add esi, 0x14
call dword [sym.imp.MSVCRT.dll_rand]
cdq
mov ecx, 0x64
idiv ecx
cmp edx, esi
jae 0x454e11
mov ebp, 1
mov dword [esp + 0x60], ebp
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0xf8]
movsx eax, byte [esi + 0x30]
cmp eax, 0x4e
ja case.0x454e31.7
xor ecx, ecx
mov cl, byte [eax + 0x45e2f8]
jmp dword [ecx*4 + 0x45e2d8]
cmp byte [esi], 1
je 0x45a7a1
movsx ecx, word [esp + 0x114]
cmp ecx, 0x31
jg 0x459ad0
je 0x45950a
cmp ecx, 0x2a
je 0x45543c
cmp ecx, 0x2e
jne 0x459ae5
mov di, word [edx + 0x850]
mov eax, edi
mov dword [esp + 0x18], edi
and eax, 0x1000
test ax, ax
jne 0x454fa6
mov bx, word [edx + 0x84e]
mov cl, bl
and cl, 2
cmp cl, 2
je 0x454ea8
mov eax, edi
and eax, 0x400
cmp eax, 0x400
je 0x454ea8
xor ebp, ebp
jmp 0x454ec0
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xa58]
mov ebp, eax
mov ecx, dword [ecx + 0x98]
cmp eax, ecx
jb 0x454ec0
mov ebp, ecx
mov al, bl
and al, 0x40
cmp al, 0x40
je 0x454eda
and edi, 0x400
cmp edi, 0x400
jne 0x454f6a
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x454f1c
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x454ef8
cmp ax, 0x3f
jle 0x454f4c
cmp ax, 0x89
je 0x454f4c
cmp ax, 0x8a
je 0x454f4c
cmp ax, 0xf0
je 0x454f4c
cmp ax, 0xf1
je 0x454f4c
cmp ax, 0xbe
jl 0x454f1c
cmp ax, 0xc2
jle 0x454f4c
cmp cl, 6
jne 0x454f6a
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x454f4c
cmp ax, 0x72
je 0x454f4c
cmp ax, 0x86
je 0x454f4c
cmp ax, 0x9a
je 0x454f4c
cmp ax, 0xae
je 0x454f4c
cmp ax, 0xc2
jne 0x454f6a
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov esi, edx
shr esi, 5
jmp 0x454f70
mov edi, dword [esp + 0x14]
xor esi, esi
and ebx, 0x4000
cmp ebx, 0x4000
jne 0x454f8e
mov eax, 0xcccccccd
mul dword [edi + 0x98]
shr edx, 2
jmp 0x454f90
xor edx, edx
mov ecx, dword [edi + 0x98]
mov ebx, dword [edi + 0x48]
add ecx, ebx
add ecx, edx
add ecx, esi
add ecx, ebp
jmp 0x455202
mov si, word [edx + 0x84e]
mov ebp, esi
and ebp, 2
cmp bp, 2
je 0x454fd0
and edi, 0x400
cmp edi, 0x400
je 0x454fd0
mov dword [esp + 0x68], 0
jmp 0x454fec
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xa58]
mov dword [esp + 0x68], eax
mov ecx, dword [ecx + 0x98]
cmp eax, ecx
jb 0x454fec
mov dword [esp + 0x68], ecx
mov edi, esi
and edi, 0x40
cmp di, 0x40
je 0x45500b
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
jne 0x45509b
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45504d
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x455029
cmp ax, 0x3f
jle 0x45507d
cmp ax, 0x89
je 0x45507d
cmp ax, 0x8a
je 0x45507d
cmp ax, 0xf0
je 0x45507d
cmp ax, 0xf1
je 0x45507d
cmp ax, 0xbe
jl 0x45504d
cmp ax, 0xc2
jle 0x45507d
cmp cl, 6
jne 0x45509b
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45507d
cmp ax, 0x72
je 0x45507d
cmp ax, 0x86
je 0x45507d
cmp ax, 0x9a
je 0x45507d
cmp ax, 0xae
je 0x45507d
cmp ax, 0xc2
jne 0x45509b
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ebx, edx
shr ebx, 5
jmp 0x45509d
xor ebx, ebx
and esi, 0x4000
cmp si, 0x4000
jne 0x4550c2
mov ecx, dword [esp + 0x14]
mov eax, 0xcccccccd
mul dword [ecx + 0x98]
shr edx, 2
mov dword [esp + 0x10], edx
jmp 0x4550ca
mov dword [esp + 0x10], 0
cmp bp, 2
je 0x4550e6
mov edx, dword [esp + 0x18]
and edx, 0x400
cmp edx, 0x400
je 0x4550e6
xor ebp, ebp
jmp 0x455102
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0xa58]
mov ecx, dword [ecx + 0x98]
cmp eax, ecx
mov ebp, eax
jb 0x455102
mov ebp, ecx
cmp di, 0x40
je 0x45511c
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
jne 0x4551b0
mov edx, dword [esp + 0x1c]
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x455162
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45513e
cmp ax, 0x3f
jle 0x455192
cmp ax, 0x89
je 0x455192
cmp ax, 0x8a
je 0x455192
cmp ax, 0xf0
je 0x455192
cmp ax, 0xf1
je 0x455192
cmp ax, 0xbe
jl 0x455162
cmp ax, 0xc2
jle 0x455192
cmp cl, 6
jne 0x4551b0
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x455192
cmp ax, 0x72
je 0x455192
cmp ax, 0x86
je 0x455192
cmp ax, 0x9a
je 0x455192
cmp ax, 0xae
je 0x455192
cmp ax, 0xc2
jne 0x4551b0
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov ecx, edx
shr ecx, 5
jmp 0x4551b2
xor ecx, ecx
cmp si, 0x4000
jne 0x4551cd
mov edx, dword [esp + 0x14]
mov eax, 0xcccccccd
mul dword [edx + 0x98]
shr edx, 2
jmp 0x4551cf
xor edx, edx
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x98]
mov edi, dword [eax + 0x48]
add edx, esi
mov eax, 0xcccccccd
add edx, ecx
add edx, ebp
mov ebp, dword [esp + 0x10]
add edx, edi
mul edx
mov ecx, edx
mov edx, dword [esp + 0x68]
shr ecx, 2
add ecx, esi
add ecx, ebp
add ecx, ebx
add ecx, edx
add ecx, edi
mov eax, dword [esp + 0xfc]
mov bx, word [eax + 0x84e]
mov dl, bl
and dl, 2
cmp dl, 2
je 0x455238
mov ax, word [eax + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x455238
mov ebp, dword [esp + 0x100]
xor edi, edi
jmp 0x45525a
mov edx, dword [esp + 0xfc]
mov ebp, dword [esp + 0x100]
mov eax, dword [edx + 0xa58]
mov edx, dword [ebp + 0x98]
cmp eax, edx
mov edi, eax
jb 0x45525a
mov edi, edx
mov al, bl
and al, 0x40
cmp al, 0x40
je 0x455280
mov edx, dword [esp + 0xfc]
mov ax, word [edx + 0x850]
and eax, 0x400
cmp eax, 0x400
jne 0x45531a
mov eax, dword [esp + 0xfc]
mov dl, byte [eax + 0x6e0]
cmp dl, 1
jne 0x4552c9
mov ax, word [eax + 0x6e2]
cmp ax, 0x34
jl 0x4552a5
cmp ax, 0x3f
jle 0x455300
cmp ax, 0x89
je 0x455300
cmp ax, 0x8a
je 0x455300
cmp ax, 0xf0
je 0x455300
cmp ax, 0xf1
je 0x455300
cmp ax, 0xbe
jl 0x4552c9
cmp ax, 0xc2
jle 0x455300
cmp dl, 6
jne 0x45531a
mov edx, dword [esp + 0xfc]
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x455300
cmp ax, 0x72
je 0x455300
cmp ax, 0x86
je 0x455300
cmp ax, 0x9a
je 0x455300
cmp ax, 0xae
je 0x455300
cmp ax, 0xc2
jne 0x45531a
mov eax, dword [ebp + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov esi, edx
shr esi, 5
jmp 0x45531c
xor esi, esi
and ebx, 0x4000
cmp ebx, 0x4000
jne 0x45533a
mov eax, 0xcccccccd
mul dword [ebp + 0x98]
shr edx, 2
jmp 0x45533c
xor edx, edx
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x104]
push 0x2e
push ebx
push eax
mov eax, dword [ebp + 0x98]
push ecx
mov ecx, dword [ebp + 0x48]
add eax, ecx
mov ecx, dword [esp + 0x48]
add eax, edx
add eax, esi
add eax, edi
push eax
call fcn.0045fab0
mov si, word [ebx + 0x1c]
mov ecx, eax
and esi, 0x100
mov edx, 1
cmp esi, 0x100
mov dword [esp + 0x44], ecx
mov eax, edx
jne 0x45538a
test ecx, ecx
je 0x455390
cmp dword [esp + 0x60], edx
jne 0x4553c4
mov esi, dword [esp + 0x104]
mov ecx, 0xb
mov edi, ebx
mov dword [esp + 0x44], edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x10c]
mov edx, dword [esp + 0xfc]
movsw word es:[edi], word [esi]
xor eax, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebp
jmp 0x4553cc
cmp ecx, edx
jne 0x45a857
mov edi, dword [esp + 0x84]
test edi, edi
jne 0x4553e9
mov ecx, dword [esp + 0x94]
test ecx, ecx
jne 0x4553e9
mov edx, 1
jmp 0x4553eb
xor edx, edx
mov ecx, dword [ebp + 0x2c]
mov esi, dword [ebp + 0x18]
push eax
mov eax, dword [esp + 0xfc]
push edi
push edx
push eax
lea edx, [esi + ecx]
mov eax, 0xcccccccd
mov ebx, dword [ebp + 0x30]
mul edx
mov eax, dword [esp + 0x4c]
shr edx, 2
call dword [sym.imp.rm3944.dll_NewAreaAttacks]
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x124]
push ecx
mov ecx, dword [esp + 0x118]
push edx
push eax
push ebp
push ecx
mov ecx, dword [esp + 0x64]
jmp 0x45a852
mov si, word [edx + 0x850]
mov eax, esi
mov dword [esp + 0x18], esi
and eax, 0x1000
test ax, ax
jne 0x455578
mov bx, word [edx + 0x84e]
mov cl, bl
and cl, 2
cmp cl, 2
je 0x45547a
mov eax, esi
and eax, 0x400
cmp eax, 0x400
je 0x45547a
xor ebp, ebp
jmp 0x455492
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xa58]
mov ebp, eax
mov ecx, dword [ecx + 0x98]
cmp eax, ecx
jb 0x455492
mov ebp, ecx
mov al, bl
and al, 0x40
cmp al, 0x40
je 0x4554ac
and esi, 0x400
cmp esi, 0x400
jne 0x45553c
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x4554ee
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x4554ca
cmp ax, 0x3f
jle 0x45551e
cmp ax, 0x89
je 0x45551e
cmp ax, 0x8a
je 0x45551e
cmp ax, 0xf0
je 0x45551e
cmp ax, 0xf1
je 0x45551e
cmp ax, 0xbe
jl 0x4554ee
cmp ax, 0xc2
jle 0x45551e
cmp cl, 6
jne 0x45553c
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45551e
cmp ax, 0x72
je 0x45551e
cmp ax, 0x86
je 0x45551e
cmp ax, 0x9a
je 0x45551e
cmp ax, 0xae
je 0x45551e
cmp ax, 0xc2
jne 0x45553c
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov esi, edx
shr esi, 5
jmp 0x455542
mov edi, dword [esp + 0x14]
xor esi, esi
and ebx, 0x4000
cmp ebx, 0x4000
jne 0x455560
mov eax, 0xcccccccd
mul dword [edi + 0x98]
shr edx, 2
jmp 0x455562
xor edx, edx
mov ecx, dword [edi + 0x98]
mov ebx, dword [edi + 0x48]
add ecx, ebx
add ecx, edx
add ecx, esi
add ecx, ebp
jmp 0x4557d0
mov bp, word [edx + 0x84e]
mov edi, ebp
and edi, 2
cmp di, 2
je 0x4555a2
mov eax, esi
and eax, 0x400
cmp eax, 0x400
je 0x4555a2
mov dword [esp + 0x68], 0
jmp 0x4555be
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xa58]
mov dword [esp + 0x68], eax
mov ecx, dword [ecx + 0x98]
cmp eax, ecx
jb 0x4555be
mov dword [esp + 0x68], ecx
mov eax, ebp
and eax, 0x40
cmp ax, 0x40
mov dword [esp + 0x2c], eax
je 0x4555df
and esi, 0x400
cmp esi, 0x400
jne 0x45566f
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x455621
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x4555fd
cmp ax, 0x3f
jle 0x455651
cmp ax, 0x89
je 0x455651
cmp ax, 0x8a
je 0x455651
cmp ax, 0xf0
je 0x455651
cmp ax, 0xf1
je 0x455651
cmp ax, 0xbe
jl 0x455621
cmp ax, 0xc2
jle 0x455651
cmp cl, 6
jne 0x45566f
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x455651
cmp ax, 0x72
je 0x455651
cmp ax, 0x86
je 0x455651
cmp ax, 0x9a
je 0x455651
cmp ax, 0xae
je 0x455651
cmp ax, 0xc2
jne 0x45566f
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ebx, edx
shr ebx, 5
jmp 0x455675
mov esi, dword [esp + 0x14]
xor ebx, ebx
and ebp, 0x4000
cmp bp, 0x4000
mov dword [esp + 0x34], ebp
jne 0x45569a
mov eax, 0xcccccccd
mul dword [esi + 0x98]
shr edx, 2
mov dword [esp + 0x10], edx
jmp 0x4556a2
mov dword [esp + 0x10], 0
cmp di, 2
je 0x4556c0
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x4556c0
mov edx, dword [esp + 0x1c]
xor ebp, ebp
jmp 0x4556d8
mov edx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x98]
mov eax, dword [edx + 0xa58]
cmp eax, ecx
mov ebp, eax
jb 0x4556d8
mov ebp, ecx
cmp word [esp + 0x2c], 0x40
je 0x4556f4
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
jne 0x455780
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x455736
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x455712
cmp ax, 0x3f
jle 0x455766
cmp ax, 0x89
je 0x455766
cmp ax, 0x8a
je 0x455766
cmp ax, 0xf0
je 0x455766
cmp ax, 0xf1
je 0x455766
cmp ax, 0xbe
jl 0x455736
cmp ax, 0xc2
jle 0x455766
cmp cl, 6
jne 0x455780
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x455766
cmp ax, 0x72
je 0x455766
cmp ax, 0x86
je 0x455766
cmp ax, 0x9a
je 0x455766
cmp ax, 0xae
je 0x455766
cmp ax, 0xc2
jne 0x455780
mov eax, dword [esi + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov ecx, edx
shr ecx, 5
jmp 0x455782
xor ecx, ecx
cmp word [esp + 0x34], 0x4000
jne 0x45579b
mov eax, 0xcccccccd
mul dword [esi + 0x98]
shr edx, 2
jmp 0x45579d
xor edx, edx
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x98]
mov edi, dword [eax + 0x48]
add edx, esi
mov eax, 0xcccccccd
add edx, ecx
add edx, ebp
mov ebp, dword [esp + 0x10]
add edx, edi
mul edx
mov ecx, edx
mov edx, dword [esp + 0x68]
shr ecx, 2
add ecx, esi
add ecx, ebp
add ecx, ebx
add ecx, edx
add ecx, edi
mov edi, dword [esp + 0xfc]
mov dx, word [edi + 0x84e]
mov al, dl
mov dword [esp + 0x30], edx
and al, 2
cmp al, 2
je 0x455808
mov ax, word [edi + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x455808
mov ebx, dword [esp + 0x100]
xor esi, esi
jmp 0x455821
mov ebx, dword [esp + 0x100]
mov eax, dword [edi + 0xa58]
mov esi, dword [ebx + 0x98]
cmp eax, esi
jae 0x455821
mov esi, eax
mov al, dl
and al, 0x40
cmp al, 0x40
je 0x455840
mov ax, word [edi + 0x850]
and eax, 0x400
cmp eax, 0x400
jne 0x4558d4
mov dl, byte [edi + 0x6e0]
cmp dl, 1
jne 0x455882
mov ax, word [edi + 0x6e2]
cmp ax, 0x34
jl 0x45585e
cmp ax, 0x3f
jle 0x4558b2
cmp ax, 0x89
je 0x4558b2
cmp ax, 0x8a
je 0x4558b2
cmp ax, 0xf0
je 0x4558b2
cmp ax, 0xf1
je 0x4558b2
cmp ax, 0xbe
jl 0x455882
cmp ax, 0xc2
jle 0x4558b2
cmp dl, 6
jne 0x4558d0
mov ax, word [edi + 0x6e2]
cmp ax, 0x54
je 0x4558b2
cmp ax, 0x72
je 0x4558b2
cmp ax, 0x86
je 0x4558b2
cmp ax, 0x9a
je 0x4558b2
cmp ax, 0xae
je 0x4558b2
cmp ax, 0xc2
jne 0x4558d0
mov eax, dword [ebx + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov edi, edx
mov edx, dword [esp + 0x30]
shr edi, 5
jmp 0x4558d6
mov edx, dword [esp + 0x30]
xor edi, edi
and edx, 0x4000
cmp edx, 0x4000
jne 0x4558f4
mov eax, 0xcccccccd
mul dword [ebx + 0x98]
shr edx, 2
jmp 0x4558f6
xor edx, edx
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x104]
mov eax, dword [esp + 0x100]
push 0x2a
push ebx
push ebp
push ecx
mov ecx, dword [eax + 0x98]
add esi, ecx
mov ecx, dword [eax + 0x48]
add esi, edx
add esi, edi
add esi, ecx
mov ecx, dword [esp + 0x48]
push esi
call fcn.0045fab0
mov cx, word [ebx + 0x1c]
mov dword [esp + 0x44], eax
and ecx, 0x100
mov dword [esp + 0x5c], 1
cmp ecx, 0x100
jne 0x45594a
test eax, eax
je 0x455951
cmp dword [esp + 0x60], 1
jne 0x455991
mov ecx, 0xb
mov esi, ebp
mov edi, ebx
mov edx, dword [esp + 0x10c]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0x100]
movsw word es:[edi], word [esi]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x44], 1
mov dword [esp + 0x3c], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
jmp 0x45599a
cmp eax, 1
jne 0x45a857
mov ebp, dword [esp + 0x100]
mov eax, 0xaaaaaaab
mov edi, dword [esp + 0xfc]
mul dword [ebp + 0x30]
mov ebx, dword [ebp + 0x2c]
mov esi, dword [ebp + 0x18]
shr edx, 1
add edx, ebx
add edx, esi
mov si, word [edi + 0x84e]
mov eax, esi
mov dword [esp + 0xbc], edx
and eax, 2
cmp ax, 2
mov dword [esp + 0x7c], eax
je 0x4559f8
mov dx, word [edi + 0x850]
and edx, 0x400
cmp edx, 0x400
je 0x4559f8
mov dword [esp + 0x58], 0
jmp 0x455a10
mov eax, dword [edi + 0xa58]
mov ecx, dword [ebp + 0x98]
cmp eax, ecx
mov dword [esp + 0x58], eax
jb 0x455a10
mov dword [esp + 0x58], ecx
mov eax, esi
and eax, 0x40
cmp ax, 0x40
mov dword [esp + 0x64], eax
je 0x455a36
mov ax, word [edi + 0x850]
and eax, 0x400
cmp eax, 0x400
jne 0x455ac2
mov cl, byte [edi + 0x6e0]
cmp cl, 1
jne 0x455a78
mov ax, word [edi + 0x6e2]
cmp ax, 0x34
jl 0x455a54
cmp ax, 0x3f
jle 0x455aa8
cmp ax, 0x89
je 0x455aa8
cmp ax, 0x8a
je 0x455aa8
cmp ax, 0xf0
je 0x455aa8
cmp ax, 0xf1
je 0x455aa8
cmp ax, 0xbe
jl 0x455a78
cmp ax, 0xc2
jle 0x455aa8
cmp cl, 6
jne 0x455ac2
mov ax, word [edi + 0x6e2]
cmp ax, 0x54
je 0x455aa8
cmp ax, 0x72
je 0x455aa8
cmp ax, 0x86
je 0x455aa8
cmp ax, 0x9a
je 0x455aa8
cmp ax, 0xae
je 0x455aa8
cmp ax, 0xc2
jne 0x455ac2
mov eax, dword [ebp + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov ebx, edx
shr ebx, 5
jmp 0x455ac4
xor ebx, ebx
and esi, 0x4000
mov dword [esp + 0x4c], ebx
cmp si, 0x4000
mov dword [esp + 0x60], esi
jne 0x455aeb
mov eax, 0xcccccccd
mul dword [ebp + 0x98]
mov ebp, edx
shr ebp, 2
jmp 0x455aed
xor ebp, ebp
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], ebp
mov ax, word [edx + 0x850]
mov dword [esp + 0x18], eax
and eax, 0x1000
test ax, ax
mov dword [esp + 0x80], eax
jne 0x455c59
mov di, word [edx + 0x84e]
mov eax, edi
and eax, 2
cmp ax, 2
mov dword [esp + 0x48], eax
je 0x455b3f
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x455b3f
xor esi, esi
jmp 0x455b57
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xa58]
mov esi, eax
mov ecx, dword [ecx + 0x98]
cmp eax, ecx
jb 0x455b57
mov esi, ecx
mov eax, edi
and eax, 0x40
cmp ax, 0x40
mov dword [esp + 0x2c], eax
je 0x455b7a
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
jne 0x455c0a
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x455bbc
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x455b98
cmp ax, 0x3f
jle 0x455bec
cmp ax, 0x89
je 0x455bec
cmp ax, 0x8a
je 0x455bec
cmp ax, 0xf0
je 0x455bec
cmp ax, 0xf1
je 0x455bec
cmp ax, 0xbe
jl 0x455bbc
cmp ax, 0xc2
jle 0x455bec
cmp cl, 6
jne 0x455c0a
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x455bec
cmp ax, 0x72
je 0x455bec
cmp ax, 0x86
je 0x455bec
cmp ax, 0x9a
je 0x455bec
cmp ax, 0xae
je 0x455bec
cmp ax, 0xc2
jne 0x455c0a
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ecx, edx
shr ecx, 5
jmp 0x455c0c
xor ecx, ecx
and edi, 0x4000
cmp di, 0x4000
mov dword [esp + 0x34], edi
jne 0x455c31
mov edi, dword [esp + 0x14]
mov eax, 0xcccccccd
mul dword [edi + 0x98]
shr edx, 2
jmp 0x455c37
mov edi, dword [esp + 0x14]
xor edx, edx
mov eax, dword [edi + 0x98]
mov edi, dword [edi + 0x48]
add edx, ecx
mov dword [esp + 0x20], eax
add eax, edi
add edx, esi
mov dword [esp + 0x68], edi
mov dword [esp + 0x30], eax
add edx, eax
jmp 0x455ed0
mov si, word [edx + 0x84e]
mov ebp, esi
and ebp, 2
cmp bp, 2
mov dword [esp + 0x48], ebp
je 0x455c89
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x455c89
mov dword [esp + 0x68], 0
jmp 0x455ca5
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xa58]
mov dword [esp + 0x68], eax
mov ecx, dword [ecx + 0x98]
cmp eax, ecx
jb 0x455ca5
mov dword [esp + 0x68], ecx
mov eax, esi
and eax, 0x40
cmp ax, 0x40
mov dword [esp + 0x2c], eax
je 0x455cc8
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
jne 0x455d58
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x455d0a
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x455ce6
cmp ax, 0x3f
jle 0x455d3a
cmp ax, 0x89
je 0x455d3a
cmp ax, 0x8a
je 0x455d3a
cmp ax, 0xf0
je 0x455d3a
cmp ax, 0xf1
je 0x455d3a
cmp ax, 0xbe
jl 0x455d0a
cmp ax, 0xc2
jle 0x455d3a
cmp cl, 6
jne 0x455d58
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x455d3a
cmp ax, 0x72
je 0x455d3a
cmp ax, 0x86
je 0x455d3a
cmp ax, 0x9a
je 0x455d3a
cmp ax, 0xae
je 0x455d3a
cmp ax, 0xc2
jne 0x455d58
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov edi, edx
shr edi, 5
jmp 0x455d5a
xor edi, edi
and esi, 0x4000
cmp si, 0x4000
mov dword [esp + 0x34], esi
jne 0x455d81
mov ecx, dword [esp + 0x14]
mov eax, 0xcccccccd
mul dword [ecx + 0x98]
mov ebx, edx
shr ebx, 2
jmp 0x455d83
xor ebx, ebx
cmp bp, 2
je 0x455da7
mov edx, dword [esp + 0x18]
and edx, 0x400
cmp edx, 0x400
je 0x455da7
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
xor esi, esi
jmp 0x455dc3
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
mov eax, dword [edx + 0xa58]
mov ecx, dword [ebp + 0x98]
cmp eax, ecx
mov esi, eax
jb 0x455dc3
mov esi, ecx
cmp word [esp + 0x2c], 0x40
je 0x455ddf
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
jne 0x455e6b
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x455e21
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x455dfd
cmp ax, 0x3f
jle 0x455e51
cmp ax, 0x89
je 0x455e51
cmp ax, 0x8a
je 0x455e51
cmp ax, 0xf0
je 0x455e51
cmp ax, 0xf1
je 0x455e51
cmp ax, 0xbe
jl 0x455e21
cmp ax, 0xc2
jle 0x455e51
cmp cl, 6
jne 0x455e6b
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x455e51
cmp ax, 0x72
je 0x455e51
cmp ax, 0x86
je 0x455e51
cmp ax, 0x9a
je 0x455e51
cmp ax, 0xae
je 0x455e51
cmp ax, 0xc2
jne 0x455e6b
mov eax, dword [ebp + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov ecx, edx
shr ecx, 5
jmp 0x455e6d
xor ecx, ecx
cmp word [esp + 0x34], 0x4000
jne 0x455e86
mov eax, 0xcccccccd
mul dword [ebp + 0x98]
shr edx, 2
jmp 0x455e88
xor edx, edx
mov eax, dword [ebp + 0x98]
add edx, ecx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x48]
mov ebp, dword [esp + 0x20]
add edx, esi
add eax, ebp
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
add edx, eax
mov eax, 0xcccccccd
mov esi, dword [esp + 0x68]
mul edx
shr edx, 2
mov eax, dword [ecx + 0x48]
add edx, ebp
mov ebp, dword [esp + 0x10]
add edx, ebx
mov ebx, dword [esp + 0x4c]
add edx, edi
add edx, esi
mov dword [esp + 0x68], eax
add edx, eax
mov eax, dword [esp + 0x100]
mov esi, dword [esp + 0x58]
add ebp, ebx
mov edi, dword [eax + 0x98]
mov eax, dword [eax + 0x48]
add eax, edi
add ebp, esi
add ebp, eax
mov dword [esp + 0x40], edi
cmp ebp, edx
mov dword [esp + 0xa0], eax
jbe 0x456810
cmp word [esp + 0x7c], 2
mov ebx, dword [esp + 0xfc]
je 0x455f2b
mov cx, word [ebx + 0x850]
and ecx, 0x400
cmp ecx, 0x400
je 0x455f2b
xor ebp, ebp
mov dword [esp + 0x4c], ebp
jmp 0x455f3f
mov eax, dword [ebx + 0xa58]
cmp eax, edi
mov dword [esp + 0x4c], eax
jb 0x455f3d
mov dword [esp + 0x4c], edi
xor ebp, ebp
mov esi, 0x40
cmp word [esp + 0x64], si
je 0x455f64
mov dx, word [ebx + 0x850]
and edx, 0x400
cmp edx, 0x400
jne 0x455fef
mov cl, byte [ebx + 0x6e0]
cmp cl, 1
jne 0x455fa6
mov ax, word [ebx + 0x6e2]
cmp ax, 0x34
jl 0x455f82
cmp ax, 0x3f
jle 0x455fd6
cmp ax, 0x89
je 0x455fd6
cmp ax, 0x8a
je 0x455fd6
cmp ax, 0xf0
je 0x455fd6
cmp ax, 0xf1
je 0x455fd6
cmp ax, 0xbe
jl 0x455fa6
cmp ax, 0xc2
jle 0x455fd6
cmp cl, 6
jne 0x455fef
mov ax, word [ebx + 0x6e2]
cmp ax, 0x54
je 0x455fd6
cmp ax, 0x72
je 0x455fd6
cmp ax, 0x86
je 0x455fd6
cmp ax, 0x9a
je 0x455fd6
cmp ax, 0xae
je 0x455fd6
cmp ax, 0xc2
jne 0x455fef
lea eax, [edi + edi*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
shr edx, 5
mov dword [esp + 0x90], edx
jmp 0x455ff6
mov dword [esp + 0x90], ebp
cmp word [esp + 0x60], 0x4000
jne 0x456012
mov eax, 0xcccccccd
mul edi
shr edx, 2
mov dword [esp + 0x8c], edx
jmp 0x456019
mov dword [esp + 0x8c], ebp
cmp word [esp + 0x80], bp
jne 0x45613a
cmp word [esp + 0x48], 2
je 0x456049
mov edx, dword [esp + 0x18]
and edx, 0x400
cmp edx, 0x400
je 0x456049
mov edx, dword [esp + 0x1c]
xor esi, esi
jmp 0x45605d
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov eax, dword [edx + 0xa58]
cmp eax, esi
jae 0x45605d
mov esi, eax
cmp word [esp + 0x2c], 0x40
je 0x456079
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
jne 0x456103
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x4560bb
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x456097
cmp ax, 0x3f
jle 0x4560eb
cmp ax, 0x89
je 0x4560eb
cmp ax, 0x8a
je 0x4560eb
cmp ax, 0xf0
je 0x4560eb
cmp ax, 0xf1
je 0x4560eb
cmp ax, 0xbe
jl 0x4560bb
cmp ax, 0xc2
jle 0x4560eb
cmp cl, 6
jne 0x456103
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x4560eb
cmp ax, 0x72
je 0x4560eb
cmp ax, 0x86
je 0x4560eb
cmp ax, 0x9a
je 0x4560eb
cmp ax, 0xae
je 0x4560eb
cmp ax, 0xc2
jne 0x456103
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov ecx, edx
shr ecx, 5
jmp 0x456105
xor ecx, ecx
cmp word [esp + 0x34], 0x4000
jne 0x456129
mov eax, 0xcccccccd
mul dword [esp + 0x20]
mov eax, dword [esp + 0x30]
shr edx, 2
add ecx, edx
add ecx, esi
add ecx, eax
jmp 0x456365
mov eax, dword [esp + 0x30]
xor edx, edx
add ecx, edx
add ecx, esi
add ecx, eax
jmp 0x456365
cmp word [esp + 0x48], 2
je 0x45615e
mov edx, dword [esp + 0x18]
and edx, 0x400
cmp edx, 0x400
je 0x45615e
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x58], ebp
jmp 0x456178
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 0xa58]
cmp eax, ecx
mov dword [esp + 0x58], eax
jb 0x456178
mov dword [esp + 0x58], ecx
cmp word [esp + 0x2c], si
je 0x456193
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
jne 0x45621d
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x4561d5
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x4561b1
cmp ax, 0x3f
jle 0x456205
cmp ax, 0x89
je 0x456205
cmp ax, 0x8a
je 0x456205
cmp ax, 0xf0
je 0x456205
cmp ax, 0xf1
je 0x456205
cmp ax, 0xbe
jl 0x4561d5
cmp ax, 0xc2
jle 0x456205
cmp cl, 6
jne 0x45621d
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x456205
cmp ax, 0x72
je 0x456205
cmp ax, 0x86
je 0x456205
cmp ax, 0x9a
je 0x456205
cmp ax, 0xae
je 0x456205
cmp ax, 0xc2
jne 0x45621d
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov ebx, edx
shr ebx, 5
jmp 0x45621f
xor ebx, ebx
cmp word [esp + 0x34], 0x4000
jne 0x45623a
mov ebp, dword [esp + 0x20]
mov eax, 0xcccccccd
mul ebp
mov edi, edx
shr edi, 2
jmp 0x456240
mov ebp, dword [esp + 0x20]
xor edi, edi
cmp word [esp + 0x48], 2
je 0x456262
mov edx, dword [esp + 0x18]
and edx, 0x400
cmp edx, 0x400
je 0x456262
mov edx, dword [esp + 0x1c]
xor esi, esi
jmp 0x456274
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xa58]
cmp eax, ebp
mov esi, eax
jb 0x456274
mov esi, ebp
cmp word [esp + 0x2c], 0x40
je 0x456290
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
jne 0x456317
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x4562d2
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x4562ae
cmp ax, 0x3f
jle 0x456302
cmp ax, 0x89
je 0x456302
cmp ax, 0x8a
je 0x456302
cmp ax, 0xf0
je 0x456302
cmp ax, 0xf1
je 0x456302
cmp ax, 0xbe
jl 0x4562d2
cmp ax, 0xc2
jle 0x456302
cmp cl, 6
jne 0x456317
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x456302
cmp ax, 0x72
je 0x456302
cmp ax, 0x86
je 0x456302
cmp ax, 0x9a
je 0x456302
cmp ax, 0xae
je 0x456302
cmp ax, 0xc2
jne 0x456317
lea eax, [ebp + ebp*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov ecx, edx
shr ecx, 5
jmp 0x456319
xor ecx, ecx
cmp word [esp + 0x34], 0x4000
jne 0x45632e
mov eax, 0xcccccccd
mul ebp
shr edx, 2
jmp 0x456330
xor edx, edx
add edx, ecx
mov eax, 0xcccccccd
add edx, esi
mov esi, dword [esp + 0x30]
add edx, esi
mov esi, dword [esp + 0x68]
mul edx
mov ecx, edx
shr ecx, 2
add ecx, ebp
mov ebp, dword [esp + 0x58]
add ecx, ebp
add ecx, esi
add ecx, edi
mov edi, dword [esp + 0x40]
add ecx, ebx
mov ebx, dword [esp + 0xfc]
xor ebp, ebp
cmp word [esp + 0x7c], 2
je 0x456388
mov dx, word [ebx + 0x850]
and edx, 0x400
cmp edx, 0x400
je 0x456388
mov dword [esp + 0x68], ebp
jmp 0x45639a
mov eax, dword [ebx + 0xa58]
cmp eax, edi
mov dword [esp + 0x68], eax
jb 0x45639a
mov dword [esp + 0x68], edi
cmp word [esp + 0x64], 0x40
je 0x4563b9
mov ax, word [ebx + 0x850]
and eax, 0x400
cmp eax, 0x400
jne 0x45643f
mov dl, byte [ebx + 0x6e0]
cmp dl, 1
jne 0x4563fb
mov ax, word [ebx + 0x6e2]
cmp ax, 0x34
jl 0x4563d7
cmp ax, 0x3f
jle 0x45642b
cmp ax, 0x89
je 0x45642b
cmp ax, 0x8a
je 0x45642b
cmp ax, 0xf0
je 0x45642b
cmp ax, 0xf1
je 0x45642b
cmp ax, 0xbe
jl 0x4563fb
cmp ax, 0xc2
jle 0x45642b
cmp dl, 6
jne 0x45643f
mov ax, word [ebx + 0x6e2]
cmp ax, 0x54
je 0x45642b
cmp ax, 0x72
je 0x45642b
cmp ax, 0x86
je 0x45642b
cmp ax, 0x9a
je 0x45642b
cmp ax, 0xae
je 0x45642b
cmp ax, 0xc2
jne 0x45643f
lea eax, [edi + edi*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ebx, edx
shr ebx, 5
jmp 0x456441
xor ebx, ebx
cmp word [esp + 0x60], 0x4000
mov dword [esp + 0xa4], ebx
jne 0x456461
mov eax, 0xcccccccd
mul dword [esp + 0x40]
mov edi, edx
shr edi, 2
jmp 0x456463
xor edi, edi
cmp word [esp + 0x80], 0
mov dword [esp + 0x10], edi
jne 0x456589
cmp word [esp + 0x48], 2
je 0x456492
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x456492
xor ebp, ebp
jmp 0x4564a8
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xa58]
mov edx, dword [esp + 0x20]
cmp eax, edx
mov ebp, eax
jb 0x4564a8
mov ebp, edx
cmp word [esp + 0x2c], 0x40
je 0x4564c4
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
jne 0x456552
mov esi, dword [esp + 0x1c]
mov dl, byte [esi + 0x6e0]
cmp dl, 1
jne 0x45650a
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x4564e6
cmp ax, 0x3f
jle 0x45653a
cmp ax, 0x89
je 0x45653a
cmp ax, 0x8a
je 0x45653a
cmp ax, 0xf0
je 0x45653a
cmp ax, 0xf1
je 0x45653a
cmp ax, 0xbe
jl 0x45650a
cmp ax, 0xc2
jle 0x45653a
cmp dl, 6
jne 0x456552
mov ax, word [esi + 0x6e2]
cmp ax, 0x54
je 0x45653a
cmp ax, 0x72
je 0x45653a
cmp ax, 0x86
je 0x45653a
cmp ax, 0x9a
je 0x45653a
cmp ax, 0xae
je 0x45653a
cmp ax, 0xc2
jne 0x456552
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov esi, edx
shr esi, 5
jmp 0x456554
xor esi, esi
cmp word [esp + 0x34], 0x4000
jne 0x456578
mov eax, 0xcccccccd
mul dword [esp + 0x20]
mov eax, dword [esp + 0x30]
shr edx, 2
add edx, esi
add edx, ebp
add edx, eax
jmp 0x4567bb
mov eax, dword [esp + 0x30]
xor edx, edx
mov edx, esi
add edx, ebp
add edx, eax
jmp 0x4567bb
cmp word [esp + 0x48], 2
je 0x4565af
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x4565af
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x58], 0
jmp 0x4565c9
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, dword [esi + 0xa58]
cmp eax, edx
mov dword [esp + 0x58], eax
jb 0x4565c9
mov dword [esp + 0x58], edx
cmp word [esp + 0x2c], 0x40
je 0x4565e7
mov edx, dword [esp + 0x18]
and edx, 0x400
cmp edx, 0x400
jne 0x456671
mov dl, byte [esi + 0x6e0]
cmp dl, 1
jne 0x456629
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x456605
cmp ax, 0x3f
jle 0x456659
cmp ax, 0x89
je 0x456659
cmp ax, 0x8a
je 0x456659
cmp ax, 0xf0
je 0x456659
cmp ax, 0xf1
je 0x456659
cmp ax, 0xbe
jl 0x456629
cmp ax, 0xc2
jle 0x456659
cmp dl, 6
jne 0x456671
mov ax, word [esi + 0x6e2]
cmp ax, 0x54
je 0x456659
cmp ax, 0x72
je 0x456659
cmp ax, 0x86
je 0x456659
cmp ax, 0x9a
je 0x456659
cmp ax, 0xae
je 0x456659
cmp ax, 0xc2
jne 0x456671
mov edi, dword [esp + 0x20]
lea eax, [edi + edi*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ebp, edx
shr ebp, 5
jmp 0x456677
mov edi, dword [esp + 0x20]
xor ebp, ebp
cmp word [esp + 0x34], 0x4000
jne 0x45668e
mov eax, 0xcccccccd
mul edi
mov ebx, edx
shr ebx, 2
jmp 0x456690
xor ebx, ebx
cmp word [esp + 0x48], 2
je 0x4566b0
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x4566b0
mov esi, dword [esp + 0x1c]
xor edi, edi
jmp 0x4566c0
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0xa58]
cmp eax, edi
jae 0x4566c0
mov edi, eax
cmp word [esp + 0x2c], 0x40
je 0x4566de
mov edx, dword [esp + 0x18]
and edx, 0x400
cmp edx, 0x400
jne 0x456768
mov dl, byte [esi + 0x6e0]
cmp dl, 1
jne 0x456720
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x4566fc
cmp ax, 0x3f
jle 0x456750
cmp ax, 0x89
je 0x456750
cmp ax, 0x8a
je 0x456750
cmp ax, 0xf0
je 0x456750
cmp ax, 0xf1
je 0x456750
cmp ax, 0xbe
jl 0x456720
cmp ax, 0xc2
jle 0x456750
cmp dl, 6
jne 0x456768
mov ax, word [esi + 0x6e2]
cmp ax, 0x54
je 0x456750
cmp ax, 0x72
je 0x456750
cmp ax, 0x86
je 0x456750
cmp ax, 0x9a
je 0x456750
cmp ax, 0xae
je 0x456750
cmp ax, 0xc2
jne 0x456768
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov esi, edx
shr esi, 5
jmp 0x45676a
xor esi, esi
cmp word [esp + 0x34], 0x4000
jne 0x456781
mov eax, 0xcccccccd
mul dword [esp + 0x20]
shr edx, 2
jmp 0x456783
xor edx, edx
mov eax, dword [esp + 0x30]
add edx, esi
add edx, edi
mov esi, dword [esp + 0x20]
add edx, eax
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x58]
shr edx, 2
add edx, esi
mov esi, dword [eax + 0x48]
add edx, ebx
mov ebx, dword [esp + 0xa4]
add edx, ebp
add edx, edi
mov edi, dword [esp + 0x10]
add edx, esi
mov eax, dword [esp + 0x8c]
mov esi, dword [esp + 0x90]
add eax, esi
mov esi, dword [esp + 0x4c]
add eax, esi
mov esi, dword [esp + 0xa0]
add eax, esi
lea ecx, [ecx + ecx*4]
lea eax, [eax + eax*4]
lea ecx, [ecx + ecx*4]
shl ecx, 1
lea eax, [eax + eax*4]
shl eax, 1
sub eax, ecx
lea ecx, [edx + edi]
mov edi, dword [esp + 0x68]
add ecx, ebx
add ecx, edi
xor edx, edx
add ecx, esi
div ecx
mov edx, eax
mov eax, 0xaaaaaaab
mul edx
shr edx, 1
add edx, 0xa
jmp 0x457145
cmp word [esp + 0x80], 0
jne 0x45693a
cmp word [esp + 0x48], 2
je 0x45683f
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x45683f
mov edx, dword [esp + 0x1c]
xor esi, esi
jmp 0x456853
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov eax, dword [edx + 0xa58]
cmp eax, esi
jae 0x456853
mov esi, eax
cmp word [esp + 0x2c], 0x40
je 0x456871
mov ecx, dword [esp + 0x18]
and ecx, 0x400
cmp ecx, 0x400
jne 0x4568fb
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x4568b3
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45688f
cmp ax, 0x3f
jle 0x4568e3
cmp ax, 0x89
je 0x4568e3
cmp ax, 0x8a
je 0x4568e3
cmp ax, 0xf0
je 0x4568e3
cmp ax, 0xf1
je 0x4568e3
cmp ax, 0xbe
jl 0x4568b3
cmp ax, 0xc2
jle 0x4568e3
cmp cl, 6
jne 0x4568fb
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x4568e3
cmp ax, 0x72
je 0x4568e3
cmp ax, 0x86
je 0x4568e3
cmp ax, 0x9a
je 0x4568e3
cmp ax, 0xae
je 0x4568e3
cmp ax, 0xc2
jne 0x4568fb
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ecx, edx
shr ecx, 5
jmp 0x4568fd
xor ecx, ecx
cmp word [esp + 0x34], 0x4000
jne 0x456925
mov eax, 0xcccccccd
mul dword [esp + 0x20]
mov eax, dword [esp + 0x30]
shr edx, 2
add ecx, edx
add ecx, esi
add ecx, eax
mov dword [esp + 0x70], ecx
jmp 0x456b5f
mov eax, dword [esp + 0x30]
xor edx, edx
add ecx, edx
add ecx, esi
add ecx, eax
mov dword [esp + 0x70], ecx
jmp 0x456b5f
cmp word [esp + 0x48], 2
je 0x456960
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x456960
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x4c], 0
jmp 0x45697a
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 0xa58]
cmp eax, ecx
mov dword [esp + 0x4c], eax
jb 0x45697a
mov dword [esp + 0x4c], ecx
cmp word [esp + 0x2c], 0x40
je 0x456998
mov ecx, dword [esp + 0x18]
and ecx, 0x400
cmp ecx, 0x400
jne 0x456a22
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x4569da
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x4569b6
cmp ax, 0x3f
jle 0x456a0a
cmp ax, 0x89
je 0x456a0a
cmp ax, 0x8a
je 0x456a0a
cmp ax, 0xf0
je 0x456a0a
cmp ax, 0xf1
je 0x456a0a
cmp ax, 0xbe
jl 0x4569da
cmp ax, 0xc2
jle 0x456a0a
cmp cl, 6
jne 0x456a22
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x456a0a
cmp ax, 0x72
je 0x456a0a
cmp ax, 0x86
je 0x456a0a
cmp ax, 0x9a
je 0x456a0a
cmp ax, 0xae
je 0x456a0a
cmp ax, 0xc2
jne 0x456a22
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ebx, edx
shr ebx, 5
jmp 0x456a24
xor ebx, ebx
cmp word [esp + 0x34], 0x4000
jne 0x456a3f
mov ebp, dword [esp + 0x20]
mov eax, 0xcccccccd
mul ebp
mov edi, edx
shr edi, 2
jmp 0x456a45
mov ebp, dword [esp + 0x20]
xor edi, edi
cmp word [esp + 0x48], 2
je 0x456a65
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x456a65
mov edx, dword [esp + 0x1c]
xor esi, esi
jmp 0x456a77
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xa58]
cmp eax, ebp
mov esi, eax
jb 0x456a77
mov esi, ebp
cmp word [esp + 0x2c], 0x40
je 0x456a95
mov ecx, dword [esp + 0x18]
and ecx, 0x400
cmp ecx, 0x400
jne 0x456b1c
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x456ad7
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x456ab3
cmp ax, 0x3f
jle 0x456b07
cmp ax, 0x89
je 0x456b07
cmp ax, 0x8a
je 0x456b07
cmp ax, 0xf0
je 0x456b07
cmp ax, 0xf1
je 0x456b07
cmp ax, 0xbe
jl 0x456ad7
cmp ax, 0xc2
jle 0x456b07
cmp cl, 6
jne 0x456b1c
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x456b07
cmp ax, 0x72
je 0x456b07
cmp ax, 0x86
je 0x456b07
cmp ax, 0x9a
je 0x456b07
cmp ax, 0xae
je 0x456b07
cmp ax, 0xc2
jne 0x456b1c
lea eax, [ebp + ebp*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ecx, edx
shr ecx, 5
jmp 0x456b1e
xor ecx, ecx
cmp word [esp + 0x34], 0x4000
jne 0x456b33
mov eax, 0xcccccccd
mul ebp
shr edx, 2
jmp 0x456b35
xor edx, edx
add esi, edx
mov edx, dword [esp + 0x30]
add esi, ecx
mov eax, 0xcccccccd
add esi, edx
mov ecx, dword [esp + 0x4c]
mul esi
shr edx, 2
mov eax, dword [esp + 0x68]
add edx, ebp
add edx, edi
add edx, ebx
add edx, ecx
add edx, eax
mov dword [esp + 0x70], edx
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0xfc]
cmp di, 2
je 0x456b91
mov ax, word [esi + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x456b91
mov edx, dword [esp + 0x40]
mov dword [esp + 0x58], 0
jmp 0x456ba7
mov eax, dword [esi + 0xa58]
mov edx, dword [esp + 0x40]
cmp eax, edx
mov dword [esp + 0x58], eax
jb 0x456ba7
mov dword [esp + 0x58], edx
mov ebp, dword [esp + 0x64]
cmp bp, 0x40
je 0x456bca
mov cx, word [esi + 0x850]
and ecx, 0x400
cmp ecx, 0x400
jne 0x456c52
mov cl, byte [esi + 0x6e0]
cmp cl, 1
jne 0x456c0c
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x456be8
cmp ax, 0x3f
jle 0x456c3c
cmp ax, 0x89
je 0x456c3c
cmp ax, 0x8a
je 0x456c3c
cmp ax, 0xf0
je 0x456c3c
cmp ax, 0xf1
je 0x456c3c
cmp ax, 0xbe
jl 0x456c0c
cmp ax, 0xc2
jle 0x456c3c
cmp cl, 6
jne 0x456c52
mov ax, word [esi + 0x6e2]
cmp ax, 0x54
je 0x456c3c
cmp ax, 0x72
je 0x456c3c
cmp ax, 0x86
je 0x456c3c
cmp ax, 0x9a
je 0x456c3c
cmp ax, 0xae
je 0x456c3c
cmp ax, 0xc2
jne 0x456c52
lea eax, [edx + edx*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
shr edx, 5
mov dword [esp + 0x6c], edx
jmp 0x456c5a
mov dword [esp + 0x6c], 0
mov ebx, dword [esp + 0x60]
cmp bx, 0x4000
jne 0x456c7c
mov ecx, dword [esp + 0x40]
mov eax, 0xcccccccd
mul ecx
shr edx, 2
mov dword [esp + 0xa4], edx
jmp 0x456c8b
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xa4], 0
cmp di, 2
je 0x456cae
mov ax, word [esi + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x456cae
mov dword [esp + 0x10], 0
jmp 0x456cc0
mov eax, dword [esi + 0xa58]
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x456cc0
mov dword [esp + 0x10], ecx
cmp bp, 0x40
je 0x456cdf
mov cx, word [esi + 0x850]
and ecx, 0x400
cmp ecx, 0x400
jne 0x456d70
mov cl, byte [esi + 0x6e0]
cmp cl, 1
jne 0x456d21
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x456cfd
cmp ax, 0x3f
jle 0x456d51
cmp ax, 0x89
je 0x456d51
cmp ax, 0x8a
je 0x456d51
cmp ax, 0xf0
je 0x456d51
cmp ax, 0xf1
je 0x456d51
cmp ax, 0xbe
jl 0x456d21
cmp ax, 0xc2
jle 0x456d51
cmp cl, 6
jne 0x456d70
mov ax, word [esi + 0x6e2]
cmp ax, 0x54
je 0x456d51
cmp ax, 0x72
je 0x456d51
cmp ax, 0x86
je 0x456d51
cmp ax, 0x9a
je 0x456d51
cmp ax, 0xae
je 0x456d51
cmp ax, 0xc2
jne 0x456d70
mov ecx, dword [esp + 0x40]
lea eax, [ecx + ecx*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ebp, edx
shr ebp, 5
mov dword [esp + 0x8c], ebp
jmp 0x456d7d
mov ecx, dword [esp + 0x40]
xor ebp, ebp
mov dword [esp + 0x8c], ebp
cmp bx, 0x4000
jne 0x456d92
mov eax, 0xcccccccd
mul ecx
mov ebx, edx
shr ebx, 2
jmp 0x456d94
xor ebx, ebx
cmp word [esp + 0x80], 0
mov dword [esp + 0x90], ebx
jne 0x456ebd
cmp word [esp + 0x48], 2
je 0x456dca
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x456dca
mov edx, dword [esp + 0x1c]
xor esi, esi
jmp 0x456dde
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov eax, dword [edx + 0xa58]
cmp eax, esi
jae 0x456dde
mov esi, eax
cmp word [esp + 0x2c], 0x40
je 0x456dfc
mov ecx, dword [esp + 0x18]
and ecx, 0x400
cmp ecx, 0x400
jne 0x456e86
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x456e3e
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x456e1a
cmp ax, 0x3f
jle 0x456e6e
cmp ax, 0x89
je 0x456e6e
cmp ax, 0x8a
je 0x456e6e
cmp ax, 0xf0
je 0x456e6e
cmp ax, 0xf1
je 0x456e6e
cmp ax, 0xbe
jl 0x456e3e
cmp ax, 0xc2
jle 0x456e6e
cmp cl, 6
jne 0x456e86
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x456e6e
cmp ax, 0x72
je 0x456e6e
cmp ax, 0x86
je 0x456e6e
cmp ax, 0x9a
je 0x456e6e
cmp ax, 0xae
je 0x456e6e
cmp ax, 0xc2
jne 0x456e86
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ecx, edx
shr ecx, 5
jmp 0x456e88
xor ecx, ecx
cmp word [esp + 0x34], 0x4000
jne 0x456eac
mov eax, 0xcccccccd
mul dword [esp + 0x20]
mov eax, dword [esp + 0x30]
shr edx, 2
add edx, ecx
add edx, esi
add edx, eax
jmp 0x4570ec
mov eax, dword [esp + 0x30]
xor edx, edx
mov edx, ecx
add edx, esi
add edx, eax
jmp 0x4570ec
cmp word [esp + 0x48], 2
je 0x456ee3
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x456ee3
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x4c], 0
jmp 0x456efd
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 0xa58]
cmp eax, ecx
mov dword [esp + 0x4c], eax
jb 0x456efd
mov dword [esp + 0x4c], ecx
cmp word [esp + 0x2c], 0x40
je 0x456f1b
mov ecx, dword [esp + 0x18]
and ecx, 0x400
cmp ecx, 0x400
jne 0x456fa5
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x456f5d
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x456f39
cmp ax, 0x3f
jle 0x456f8d
cmp ax, 0x89
je 0x456f8d
cmp ax, 0x8a
je 0x456f8d
cmp ax, 0xf0
je 0x456f8d
cmp ax, 0xf1
je 0x456f8d
cmp ax, 0xbe
jl 0x456f5d
cmp ax, 0xc2
jle 0x456f8d
cmp cl, 6
jne 0x456fa5
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x456f8d
cmp ax, 0x72
je 0x456f8d
cmp ax, 0x86
je 0x456f8d
cmp ax, 0x9a
je 0x456f8d
cmp ax, 0xae
je 0x456f8d
cmp ax, 0xc2
jne 0x456fa5
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ebx, edx
shr ebx, 5
jmp 0x456fa7
xor ebx, ebx
cmp word [esp + 0x34], 0x4000
jne 0x456fc2
mov ebp, dword [esp + 0x20]
mov eax, 0xcccccccd
mul ebp
mov edi, edx
shr edi, 2
jmp 0x456fc8
mov ebp, dword [esp + 0x20]
xor edi, edi
cmp word [esp + 0x48], 2
je 0x456fe8
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x456fe8
mov edx, dword [esp + 0x1c]
xor esi, esi
jmp 0x456ffa
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xa58]
cmp eax, ebp
mov esi, eax
jb 0x456ffa
mov esi, ebp
cmp word [esp + 0x2c], 0x40
je 0x457018
mov ecx, dword [esp + 0x18]
and ecx, 0x400
cmp ecx, 0x400
jne 0x45709f
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45705a
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x457036
cmp ax, 0x3f
jle 0x45708a
cmp ax, 0x89
je 0x45708a
cmp ax, 0x8a
je 0x45708a
cmp ax, 0xf0
je 0x45708a
cmp ax, 0xf1
je 0x45708a
cmp ax, 0xbe
jl 0x45705a
cmp ax, 0xc2
jle 0x45708a
cmp cl, 6
jne 0x45709f
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45708a
cmp ax, 0x72
je 0x45708a
cmp ax, 0x86
je 0x45708a
cmp ax, 0x9a
je 0x45708a
cmp ax, 0xae
je 0x45708a
cmp ax, 0xc2
jne 0x45709f
lea eax, [ebp + ebp*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ecx, edx
shr ecx, 5
jmp 0x4570a1
xor ecx, ecx
cmp word [esp + 0x34], 0x4000
jne 0x4570b6
mov eax, 0xcccccccd
mul ebp
shr edx, 2
jmp 0x4570b8
xor edx, edx
add edx, ecx
mov eax, 0xcccccccd
add edx, esi
mov esi, dword [esp + 0x30]
add edx, esi
mov ecx, dword [esp + 0x4c]
mul edx
shr edx, 2
mov eax, dword [esp + 0x68]
add edx, ebp
mov ebp, dword [esp + 0x8c]
add edx, edi
add edx, ebx
mov ebx, dword [esp + 0x90]
add edx, ecx
add edx, eax
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x58]
add eax, ecx
mov ecx, dword [esp + 0xa0]
add eax, ecx
add eax, edi
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 1
mov esi, eax
mov eax, dword [esp + 0x70]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 1
sub eax, esi
lea esi, [edx + ebx]
mov ebx, dword [esp + 0x10]
add esi, ebp
add esi, ebx
xor edx, edx
add esi, ecx
div esi
mov ecx, eax
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
mov eax, edx
mov edx, 0xa
sub edx, eax
cmp edx, 0x64
ja 0x45948b
mov edx, dword [esp + 0xfc]
mov ebp, 2
cmp word [esp + 0x7c], bp
je 0x457187
mov cx, word [edx + 0x850]
and ecx, 0x400
cmp ecx, 0x400
je 0x457187
mov esi, dword [esp + 0x100]
mov dword [esp + 0x10], 0
jmp 0x4571a6
mov esi, dword [esp + 0x100]
mov eax, dword [edx + 0xa58]
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 0x98]
cmp eax, ecx
jb 0x4571a6
mov dword [esp + 0x10], ecx
cmp word [esp + 0x64], 0x40
je 0x4571c5
mov ax, word [edx + 0x850]
and eax, 0x400
cmp eax, 0x400
jne 0x457251
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x457207
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x4571e3
cmp ax, 0x3f
jle 0x457237
cmp ax, 0x89
je 0x457237
cmp ax, 0x8a
je 0x457237
cmp ax, 0xf0
je 0x457237
cmp ax, 0xf1
je 0x457237
cmp ax, 0xbe
jl 0x457207
cmp ax, 0xc2
jle 0x457237
cmp cl, 6
jne 0x457251
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x457237
cmp ax, 0x72
je 0x457237
cmp ax, 0x86
je 0x457237
cmp ax, 0x9a
je 0x457237
cmp ax, 0xae
je 0x457237
cmp ax, 0xc2
jne 0x457251
mov eax, dword [esi + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov edi, edx
shr edi, 5
jmp 0x457253
xor edi, edi
cmp word [esp + 0x60], 0x4000
mov dword [esp + 0x6c], edi
jne 0x457272
mov eax, 0xcccccccd
mul dword [esi + 0x98]
mov ebx, edx
shr ebx, 2
jmp 0x457274
xor ebx, ebx
cmp word [esp + 0x80], 0
mov dword [esp + 0x70], ebx
jne 0x45739b
cmp word [esp + 0x48], bp
je 0x4572a8
mov edx, dword [esp + 0x18]
and edx, 0x400
cmp edx, 0x400
je 0x4572a8
mov ebp, dword [esp + 0x1c]
xor esi, esi
jmp 0x4572be
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov eax, dword [ebp + 0xa58]
cmp eax, ecx
mov esi, eax
jb 0x4572be
mov esi, ecx
cmp word [esp + 0x2c], 0x40
je 0x4572da
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
jne 0x457364
mov cl, byte [ebp + 0x6e0]
cmp cl, 1
jne 0x45731c
mov ax, word [ebp + 0x6e2]
cmp ax, 0x34
jl 0x4572f8
cmp ax, 0x3f
jle 0x45734c
cmp ax, 0x89
je 0x45734c
cmp ax, 0x8a
je 0x45734c
cmp ax, 0xf0
je 0x45734c
cmp ax, 0xf1
je 0x45734c
cmp ax, 0xbe
jl 0x45731c
cmp ax, 0xc2
jle 0x45734c
cmp cl, 6
jne 0x457364
mov ax, word [ebp + 0x6e2]
cmp ax, 0x54
je 0x45734c
cmp ax, 0x72
je 0x45734c
cmp ax, 0x86
je 0x45734c
cmp ax, 0x9a
je 0x45734c
cmp ax, 0xae
je 0x45734c
cmp ax, 0xc2
jne 0x457364
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov ecx, edx
shr ecx, 5
jmp 0x457366
xor ecx, ecx
cmp word [esp + 0x34], 0x4000
jne 0x45738a
mov eax, 0xcccccccd
mul dword [esp + 0x20]
mov eax, dword [esp + 0x30]
shr edx, 2
add edx, ecx
add edx, esi
add edx, eax
jmp 0x4575c5
mov eax, dword [esp + 0x30]
xor edx, edx
mov edx, ecx
add edx, esi
add edx, eax
jmp 0x4575c5
cmp word [esp + 0x48], bp
je 0x4573b8
mov edx, dword [esp + 0x18]
and edx, 0x400
cmp edx, 0x400
je 0x4573b8
xor ebp, ebp
jmp 0x4573ce
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 0xa58]
cmp eax, ecx
mov ebp, eax
jb 0x4573ce
mov ebp, ecx
cmp word [esp + 0x2c], 0x40
je 0x4573ec
mov ecx, dword [esp + 0x18]
and ecx, 0x400
cmp ecx, 0x400
jne 0x45747a
mov esi, dword [esp + 0x1c]
mov cl, byte [esi + 0x6e0]
cmp cl, 1
jne 0x457432
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x45740e
cmp ax, 0x3f
jle 0x457462
cmp ax, 0x89
je 0x457462
cmp ax, 0x8a
je 0x457462
cmp ax, 0xf0
je 0x457462
cmp ax, 0xf1
je 0x457462
cmp ax, 0xbe
jl 0x457432
cmp ax, 0xc2
jle 0x457462
cmp cl, 6
jne 0x45747e
mov ax, word [esi + 0x6e2]
cmp ax, 0x54
je 0x457462
cmp ax, 0x72
je 0x457462
cmp ax, 0x86
je 0x457462
cmp ax, 0x9a
je 0x457462
cmp ax, 0xae
je 0x457462
cmp ax, 0xc2
jne 0x45747e
mov ecx, dword [esp + 0x20]
lea eax, [ecx + ecx*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ebx, edx
shr ebx, 5
jmp 0x457484
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
xor ebx, ebx
cmp word [esp + 0x34], 0x4000
jne 0x45749b
mov eax, 0xcccccccd
mul ecx
mov edi, edx
shr edi, 2
jmp 0x45749d
xor edi, edi
cmp word [esp + 0x48], 2
je 0x4574b9
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x4574b9
xor esi, esi
jmp 0x4574c9
mov eax, dword [esi + 0xa58]
cmp eax, ecx
mov esi, eax
jb 0x4574c9
mov esi, dword [esp + 0x20]
cmp word [esp + 0x2c], 0x40
je 0x4574e7
mov ecx, dword [esp + 0x18]
and ecx, 0x400
cmp ecx, 0x400
jne 0x457575
mov edx, dword [esp + 0x1c]
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45752d
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x457509
cmp ax, 0x3f
jle 0x45755d
cmp ax, 0x89
je 0x45755d
cmp ax, 0x8a
je 0x45755d
cmp ax, 0xf0
je 0x45755d
cmp ax, 0xf1
je 0x45755d
cmp ax, 0xbe
jl 0x45752d
cmp ax, 0xc2
jle 0x45755d
cmp cl, 6
jne 0x457575
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45755d
cmp ax, 0x72
je 0x45755d
cmp ax, 0x86
je 0x45755d
cmp ax, 0x9a
je 0x45755d
cmp ax, 0xae
je 0x45755d
cmp ax, 0xc2
jne 0x457575
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ecx, edx
shr ecx, 5
jmp 0x457577
xor ecx, ecx
cmp word [esp + 0x34], 0x4000
jne 0x45758e
mov eax, 0xcccccccd
mul dword [esp + 0x20]
shr edx, 2
jmp 0x457590
xor edx, edx
mov eax, dword [esp + 0x30]
add edx, ecx
add edx, esi
mov ecx, dword [esp + 0x20]
add edx, eax
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0x14]
shr edx, 2
add edx, ecx
mov ecx, dword [eax + 0x48]
add edx, edi
mov edi, dword [esp + 0x6c]
add edx, ebx
mov ebx, dword [esp + 0x70]
add edx, ecx
add edx, ebp
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0xa0]
add ebx, edi
add ebx, esi
add ebx, ecx
cmp ebx, edx
jbe 0x4579b8
cmp word [esp + 0x64], 0x40
je 0x457602
mov ecx, dword [esp + 0xfc]
mov dx, word [ecx + 0x850]
and edx, 0x400
cmp edx, 0x400
jne 0x457664
mov eax, dword [esp + 0xfc]
mov cl, byte [eax + 0x6e0]
cmp cl, 1
jne 0x45764d
mov edx, eax
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x457629
cmp ax, 0x3f
jle 0x457664
cmp ax, 0x89
je 0x457664
cmp ax, 0x8a
je 0x457664
cmp ax, 0xf0
je 0x457664
cmp ax, 0xf1
je 0x457664
cmp cl, 6
jne 0x457664
mov eax, dword [esp + 0xfc]
mov cx, word [eax + 0x6e2]
mov dword [esp + 0x40], ecx
mov edi, dword [esp + 0x80]
mov ebx, dword [esp + 0x2c]
test di, di
jne 0x457705
mov esi, dword [esp + 0x18]
cmp bx, 0x40
je 0x457696
mov edx, esi
and edx, 0x400
cmp edx, 0x400
jne 0x4577d7
mov cl, byte [ebp + 0x6e0]
cmp cl, 1
jne 0x4576f0
mov ax, word [ebp + 0x6e2]
cmp ax, 0x34
jl 0x4576b8
cmp cl, 6
jne 0x4577d7
mov esi, dword [esp + 0x18]
cmp bx, 0x40
je 0x45771d
mov eax, esi
and eax, 0x400
cmp eax, 0x400
jne 0x45776f
mov cl, byte [ebp + 0x6e0]
cmp cl, 1
jne 0x45775f
mov ax, word [ebp + 0x6e2]
cmp ax, 0x34
jl 0x45773b
cmp cl, 6
jne 0x45776f
cmp bx, 0x40
je 0x457785
cmp word [esp + 0x64], 0x40
mov edx, dword [esp + 0xfc]
je 0x4577fb
cmp word [esp + 0x80], 0
jne 0x457a54
cmp word [esp + 0x2c], 0x40
je 0x4579e5
mov edx, dword [esp + 0x18]
and edx, 0x400
cmp edx, 0x400
jne 0x457b2a
mov cl, byte [ebp + 0x6e0]
cmp cl, 1
jne 0x457a3f
mov ax, word [ebp + 0x6e2]
cmp ax, 0x34
jl 0x457a07
cmp ax, 0x3f
jle 0x457b2a
cmp ax, 0x89
je 0x457b2a
cmp ax, 0x8a
je 0x457b2a
cmp ax, 0xf0
je 0x457b2a
cmp cl, 6
jne 0x457b2a
mov ax, word [ebp + 0x6e2]
jmp 0x457b2a
cmp word [esp + 0x2c], 0x40
je 0x457a6c
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
jne 0x457abe
mov cl, byte [ebp + 0x6e0]
cmp cl, 1
jne 0x457aae
mov ax, word [ebp + 0x6e2]
cmp ax, 0x34
jl 0x457a8a
cmp ax, 0x3f
jle 0x457abe
cmp ax, 0x89
je 0x457abe
cmp ax, 0x8a
je 0x457abe
cmp ax, 0xf0
je 0x457abe
cmp cl, 6
jne 0x457abe
mov cx, word [ebp + 0x6e2]
mov dword [esp + 0x40], ecx
cmp word [esp + 0x2c], 0x40
je 0x457ad8
mov edx, dword [esp + 0x18]
and edx, 0x400
cmp edx, 0x400
jne 0x457b2a
mov cl, byte [ebp + 0x6e0]
cmp cl, 1
jne 0x457b1a
mov ax, word [ebp + 0x6e2]
cmp ax, 0x34
jl 0x457af6
cmp cl, 6
jne 0x457b2a
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0xfc]
cmp si, 0x40
je 0x457b50
mov esi, 0x64
call dword [sym.imp.MSVCRT.dll_rand]
cdq
mov ecx, 0x64
idiv ecx
cmp edx, esi
mov edx, dword [esp + 0xbc]
jge 0x4594ab
add edx, edx
mov ecx, dword [esp + 0x84]
test ecx, ecx
jne 0x4594c8
mov eax, dword [esp + 0x94]
test eax, eax
jne 0x4594c8
mov eax, 1
jmp 0x4594ca
xor eax, eax
mov esi, dword [esp + 0x5c]
push esi
push ecx
mov ecx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x104]
push eax
mov eax, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x124]
push edx
mov edx, dword [esp + 0x11c]
push eax
mov eax, dword [esp + 0x11c]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
push eax
jmp 0x45a852
mov si, word [edx + 0x850]
mov ecx, esi
mov dword [esp + 0x18], esi
and ecx, 0x1000
test cx, cx
jne 0x459647
mov bx, word [edx + 0x84e]
mov al, bl
and al, 2
cmp al, 2
je 0x459549
mov ecx, esi
and ecx, 0x400
cmp ecx, 0x400
je 0x459549
xor ebp, ebp
jmp 0x459561
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xa58]
mov ebp, eax
mov ecx, dword [ecx + 0x98]
cmp eax, ecx
jb 0x459561
mov ebp, ecx
mov al, bl
and al, 0x40
cmp al, 0x40
je 0x45957b
and esi, 0x400
cmp esi, 0x400
jne 0x45960b
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x4595bd
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x459599
cmp ax, 0x3f
jle 0x4595ed
cmp ax, 0x89
je 0x4595ed
cmp ax, 0x8a
je 0x4595ed
cmp ax, 0xf0
je 0x4595ed
cmp ax, 0xf1
je 0x4595ed
cmp ax, 0xbe
jl 0x4595bd
cmp ax, 0xc2
jle 0x4595ed
cmp cl, 6
jne 0x45960b
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x4595ed
cmp ax, 0x72
je 0x4595ed
cmp ax, 0x86
je 0x4595ed
cmp ax, 0x9a
je 0x4595ed
cmp ax, 0xae
je 0x4595ed
cmp ax, 0xc2
jne 0x45960b
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov esi, edx
shr esi, 5
jmp 0x459611
mov edi, dword [esp + 0x14]
xor esi, esi
and ebx, 0x4000
cmp ebx, 0x4000
jne 0x45962f
mov eax, 0xcccccccd
mul dword [edi + 0x98]
shr edx, 2
jmp 0x459631
xor edx, edx
mov ecx, dword [edi + 0x98]
mov ebx, dword [edi + 0x48]
add ecx, ebx
add ecx, edx
add ecx, esi
add ecx, ebp
jmp 0x45989f
mov bp, word [edx + 0x84e]
mov edi, ebp
and edi, 2
cmp di, 2
je 0x459671
mov eax, esi
and eax, 0x400
cmp eax, 0x400
je 0x459671
mov dword [esp + 0x10], 0
jmp 0x45968d
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xa58]
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 0x98]
cmp eax, ecx
jb 0x45968d
mov dword [esp + 0x10], ecx
mov eax, ebp
and eax, 0x40
cmp ax, 0x40
mov dword [esp + 0x2c], eax
je 0x4596ae
and esi, 0x400
cmp esi, 0x400
jne 0x45973e
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x4596f0
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x4596cc
cmp ax, 0x3f
jle 0x459720
cmp ax, 0x89
je 0x459720
cmp ax, 0x8a
je 0x459720
cmp ax, 0xf0
je 0x459720
cmp ax, 0xf1
je 0x459720
cmp ax, 0xbe
jl 0x4596f0
cmp ax, 0xc2
jle 0x459720
cmp cl, 6
jne 0x45973e
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x459720
cmp ax, 0x72
je 0x459720
cmp ax, 0x86
je 0x459720
cmp ax, 0x9a
je 0x459720
cmp ax, 0xae
je 0x459720
cmp ax, 0xc2
jne 0x45973e
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ebx, edx
shr ebx, 5
jmp 0x459744
mov esi, dword [esp + 0x14]
xor ebx, ebx
and ebp, 0x4000
cmp bp, 0x4000
mov dword [esp + 0x34], ebp
jne 0x459769
mov eax, 0xcccccccd
mul dword [esi + 0x98]
shr edx, 2
mov dword [esp + 0x5c], edx
jmp 0x459771
mov dword [esp + 0x5c], 0
cmp di, 2
je 0x45978f
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x45978f
mov edx, dword [esp + 0x1c]
xor ebp, ebp
jmp 0x4597a7
mov edx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x98]
mov eax, dword [edx + 0xa58]
cmp eax, ecx
mov ebp, eax
jb 0x4597a7
mov ebp, ecx
cmp word [esp + 0x2c], 0x40
je 0x4597c3
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
jne 0x45984f
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x459805
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x4597e1
cmp ax, 0x3f
jle 0x459835
cmp ax, 0x89
je 0x459835
cmp ax, 0x8a
je 0x459835
cmp ax, 0xf0
je 0x459835
cmp ax, 0xf1
je 0x459835
cmp ax, 0xbe
jl 0x459805
cmp ax, 0xc2
jle 0x459835
cmp cl, 6
jne 0x45984f
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x459835
cmp ax, 0x72
je 0x459835
cmp ax, 0x86
je 0x459835
cmp ax, 0x9a
je 0x459835
cmp ax, 0xae
je 0x459835
cmp ax, 0xc2
jne 0x45984f
mov eax, dword [esi + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov ecx, edx
shr ecx, 5
jmp 0x459851
xor ecx, ecx
cmp word [esp + 0x34], 0x4000
jne 0x45986a
mov eax, 0xcccccccd
mul dword [esi + 0x98]
shr edx, 2
jmp 0x45986c
xor edx, edx
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x98]
mov edi, dword [eax + 0x48]
add edx, esi
mov eax, 0xcccccccd
add edx, ecx
add edx, ebp
mov ebp, dword [esp + 0x5c]
add edx, edi
mul edx
mov ecx, edx
mov edx, dword [esp + 0x10]
shr ecx, 2
add ecx, esi
add ecx, ebp
add ecx, ebx
add ecx, edx
add ecx, edi
mov eax, dword [esp + 0xfc]
mov bx, word [eax + 0x84e]
mov dl, bl
and dl, 2
cmp dl, 2
je 0x4598d5
mov ax, word [eax + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x4598d5
mov ebp, dword [esp + 0x100]
xor edi, edi
jmp 0x4598f7
mov edx, dword [esp + 0xfc]
mov ebp, dword [esp + 0x100]
mov eax, dword [edx + 0xa58]
mov edx, dword [ebp + 0x98]
cmp eax, edx
mov edi, eax
jb 0x4598f7
mov edi, edx
mov esi, dword [esp + 0xfc]
mov al, bl
and al, 0x40
cmp al, 0x40
je 0x45991f
mov dx, word [esi + 0x850]
and edx, 0x400
cmp edx, 0x400
jne 0x4599ab
mov dl, byte [esi + 0x6e0]
cmp dl, 1
jne 0x459961
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x45993d
cmp ax, 0x3f
jle 0x459991
cmp ax, 0x89
je 0x459991
cmp ax, 0x8a
je 0x459991
cmp ax, 0xf0
je 0x459991
cmp ax, 0xf1
je 0x459991
cmp ax, 0xbe
jl 0x459961
cmp ax, 0xc2
jle 0x459991
cmp dl, 6
jne 0x4599ab
mov ax, word [esi + 0x6e2]
cmp ax, 0x54
je 0x459991
cmp ax, 0x72
je 0x459991
cmp ax, 0x86
je 0x459991
cmp ax, 0x9a
je 0x459991
cmp ax, 0xae
je 0x459991
cmp ax, 0xc2
jne 0x4599ab
mov eax, dword [ebp + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov esi, edx
shr esi, 5
jmp 0x4599ad
xor esi, esi
and ebx, 0x4000
cmp ebx, 0x4000
jne 0x4599cb
mov eax, 0xcccccccd
mul dword [ebp + 0x98]
shr edx, 2
jmp 0x4599cd
xor edx, edx
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x104]
push 0x31
push ebx
push eax
mov eax, dword [ebp + 0x98]
push ecx
mov ecx, dword [ebp + 0x48]
add eax, ecx
mov ecx, dword [esp + 0x48]
add eax, edx
add eax, esi
add eax, edi
push eax
call fcn.0045fab0
mov dx, word [ebx + 0x1c]
mov ecx, 1
and edx, 0x100
mov dword [esp + 0x44], eax
cmp edx, 0x100
mov eax, ecx
jne 0x459a1d
mov edx, dword [esp + 0x44]
test edx, edx
je 0x459a23
cmp dword [esp + 0x60], ecx
jne 0x459a57
mov esi, dword [esp + 0x104]
mov dword [esp + 0x44], ecx
mov ecx, 0xb
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x10c]
mov edx, dword [esp + 0xfc]
movsw word es:[edi], word [esi]
xor eax, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebp
jmp 0x459a61
cmp dword [esp + 0x44], ecx
jne 0x45a857
mov edx, dword [esp + 0x84]
test edx, edx
jne 0x459a7e
mov ecx, dword [esp + 0x94]
test ecx, ecx
jne 0x459a7e
mov ecx, 1
jmp 0x459a80
xor ecx, ecx
mov edi, dword [ebp + 0x18]
push eax
mov eax, dword [esp + 0xfc]
push edx
push ecx
mov ecx, dword [ebp + 0x2c]
push eax
add ecx, edi
mov eax, 0xcccccccd
mul ecx
mov eax, dword [ebp + 0x30]
shr edx, 3
lea edx, [edx + edx*8]
lea ecx, [eax + edx*2]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x124]
push eax
mov eax, dword [esp + 0x118]
push ecx
mov ecx, dword [esp + 0x58]
push edx
push ebp
push eax
jmp 0x45a852
cmp ecx, 0x43
je 0x45a1de
cmp ecx, 0x15f
je 0x459c13
call dword [sym.imp.rm3944.dll_NewCheckForAreaAttack]
nop
mov eax, dword [esp + 0x14]
and edx, 0x1000
test dx, dx
jne 0x459b08
mov edx, dword [eax + 0x94]
mov esi, dword [eax + 0x44]
add edx, esi
jmp 0x459b2a
mov esi, dword [eax + 0x94]
mov edi, dword [eax + 0x44]
mov eax, 0xcccccccd
mov ebx, dword [esp + 0x28]
lea edx, [edi + esi]
mul edx
shr edx, 2
add edx, edi
mov edi, dword [esp + 0x38]
add edx, esi
mov esi, dword [esp + 0x104]
mov ebp, dword [esp + 0x100]
push ecx
push ebx
mov eax, dword [ebp + 0x94]
push esi
push edx
mov edx, dword [ebp + 0x44]
add eax, edx
mov ecx, edi
push eax
call fcn.0045fab0
mov dx, word [ebx + 0x1c]
mov ecx, eax
and edx, 0x100
mov dword [esp + 0x44], ecx
cmp edx, 0x100
mov eax, 1
jne 0x459b70
test ecx, ecx
je 0x459b77
cmp dword [esp + 0x60], 1
jne 0x459bae
mov edi, dword [esp + 0x28]
mov ecx, 0xb
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x10c]
mov edx, dword [esp + 0xfc]
movsw word es:[edi], word [esi]
mov edi, dword [esp + 0x38]
xor eax, eax
mov dword [esp + 0x44], 1
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebp
jmp 0x459bb7
cmp ecx, 1
jne 0x45a857
mov edx, dword [esp + 0x84]
test edx, edx
jne 0x459bd4
mov ecx, dword [esp + 0x94]
test ecx, ecx
jne 0x459bd4
mov ecx, 1
jmp 0x459bd6
xor ecx, ecx
push eax
mov eax, dword [esp + 0xfc]
push edx
mov edx, dword [esp + 0x44]
push ecx
mov ecx, dword [ebp + 0x34]
push eax
mov eax, dword [esp + 0x120]
add ecx, eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x124]
push eax
mov eax, dword [esp + 0x118]
push ecx
push edx
push ebp
push eax
jmp 0x45a850
mov si, word [edx + 0x850]
mov ecx, esi
mov dword [esp + 0x18], esi
and ecx, 0x1000
test cx, cx
jne 0x459d50
mov bx, word [edx + 0x84e]
mov al, bl
and al, 2
cmp al, 2
je 0x459c52
mov ecx, esi
and ecx, 0x400
cmp ecx, 0x400
je 0x459c52
xor ebp, ebp
jmp 0x459c6a
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xa58]
mov ebp, eax
mov ecx, dword [ecx + 0x98]
cmp eax, ecx
jb 0x459c6a
mov ebp, ecx
mov al, bl
and al, 0x40
cmp al, 0x40
je 0x459c84
and esi, 0x400
cmp esi, 0x400
jne 0x459d14
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x459cc6
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x459ca2
cmp ax, 0x3f
jle 0x459cf6
cmp ax, 0x89
je 0x459cf6
cmp ax, 0x8a
je 0x459cf6
cmp ax, 0xf0
je 0x459cf6
cmp ax, 0xf1
je 0x459cf6
cmp ax, 0xbe
jl 0x459cc6
cmp ax, 0xc2
jle 0x459cf6
cmp cl, 6
jne 0x459d14
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x459cf6
cmp ax, 0x72
je 0x459cf6
cmp ax, 0x86
je 0x459cf6
cmp ax, 0x9a
je 0x459cf6
cmp ax, 0xae
je 0x459cf6
cmp ax, 0xc2
jne 0x459d14
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov esi, edx
shr esi, 5
jmp 0x459d1a
mov edi, dword [esp + 0x14]
xor esi, esi
and ebx, 0x4000
cmp ebx, 0x4000
jne 0x459d38
mov eax, 0xcccccccd
mul dword [edi + 0x98]
shr edx, 2
jmp 0x459d3a
xor edx, edx
mov ecx, dword [edi + 0x98]
mov ebx, dword [edi + 0x48]
add ecx, ebx
add ecx, edx
add ecx, esi
add ecx, ebp
jmp 0x459fa8
mov bp, word [edx + 0x84e]
mov edi, ebp
and edi, 2
cmp di, 2
je 0x459d7a
mov eax, esi
and eax, 0x400
cmp eax, 0x400
je 0x459d7a
mov dword [esp + 0x10], 0
jmp 0x459d96
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xa58]
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 0x98]
cmp eax, ecx
jb 0x459d96
mov dword [esp + 0x10], ecx
mov eax, ebp
and eax, 0x40
cmp ax, 0x40
mov dword [esp + 0x2c], eax
je 0x459db7
and esi, 0x400
cmp esi, 0x400
jne 0x459e47
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x459df9
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x459dd5
cmp ax, 0x3f
jle 0x459e29
cmp ax, 0x89
je 0x459e29
cmp ax, 0x8a
je 0x459e29
cmp ax, 0xf0
je 0x459e29
cmp ax, 0xf1
je 0x459e29
cmp ax, 0xbe
jl 0x459df9
cmp ax, 0xc2
jle 0x459e29
cmp cl, 6
jne 0x459e47
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x459e29
cmp ax, 0x72
je 0x459e29
cmp ax, 0x86
je 0x459e29
cmp ax, 0x9a
je 0x459e29
cmp ax, 0xae
je 0x459e29
cmp ax, 0xc2
jne 0x459e47
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ebx, edx
shr ebx, 5
jmp 0x459e4d
mov esi, dword [esp + 0x14]
xor ebx, ebx
and ebp, 0x4000
cmp bp, 0x4000
mov dword [esp + 0x34], ebp
jne 0x459e72
mov eax, 0xcccccccd
mul dword [esi + 0x98]
shr edx, 2
mov dword [esp + 0x5c], edx
jmp 0x459e7a
mov dword [esp + 0x5c], 0
cmp di, 2
je 0x459e98
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x459e98
mov edx, dword [esp + 0x1c]
xor ebp, ebp
jmp 0x459eb0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x98]
mov eax, dword [edx + 0xa58]
cmp eax, ecx
mov ebp, eax
jb 0x459eb0
mov ebp, ecx
cmp word [esp + 0x2c], 0x40
je 0x459ecc
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
jne 0x459f58
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x459f0e
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x459eea
cmp ax, 0x3f
jle 0x459f3e
cmp ax, 0x89
je 0x459f3e
cmp ax, 0x8a
je 0x459f3e
cmp ax, 0xf0
je 0x459f3e
cmp ax, 0xf1
je 0x459f3e
cmp ax, 0xbe
jl 0x459f0e
cmp ax, 0xc2
jle 0x459f3e
cmp cl, 6
jne 0x459f58
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x459f3e
cmp ax, 0x72
je 0x459f3e
cmp ax, 0x86
je 0x459f3e
cmp ax, 0x9a
je 0x459f3e
cmp ax, 0xae
je 0x459f3e
cmp ax, 0xc2
jne 0x459f58
mov eax, dword [esi + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov ecx, edx
shr ecx, 5
jmp 0x459f5a
xor ecx, ecx
cmp word [esp + 0x34], 0x4000
jne 0x459f73
mov eax, 0xcccccccd
mul dword [esi + 0x98]
shr edx, 2
jmp 0x459f75
xor edx, edx
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x98]
mov edi, dword [eax + 0x48]
add edx, esi
mov eax, 0xcccccccd
add edx, ecx
add edx, edi
add edx, ebp
mov ebp, dword [esp + 0x5c]
mul edx
mov ecx, edx
mov edx, dword [esp + 0x10]
shr ecx, 2
add ecx, esi
add ecx, ebp
add ecx, ebx
add ecx, edx
add ecx, edi
mov eax, dword [esp + 0xfc]
mov bx, word [eax + 0x84e]
mov dl, bl
and dl, 2
cmp dl, 2
je 0x459fde
mov ax, word [eax + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x459fde
mov ebp, dword [esp + 0x100]
xor edi, edi
jmp 0x45a000
mov edx, dword [esp + 0xfc]
mov ebp, dword [esp + 0x100]
mov eax, dword [edx + 0xa58]
mov edx, dword [ebp + 0x98]
cmp eax, edx
mov edi, eax
jb 0x45a000
mov edi, edx
mov al, bl
and al, 0x40
cmp al, 0x40
je 0x45a026
mov edx, dword [esp + 0xfc]
mov ax, word [edx + 0x850]
and eax, 0x400
cmp eax, 0x400
jne 0x45a0c0
mov eax, dword [esp + 0xfc]
mov dl, byte [eax + 0x6e0]
cmp dl, 1
jne 0x45a06f
mov ax, word [eax + 0x6e2]
cmp ax, 0x34
jl 0x45a04b
cmp ax, 0x3f
jle 0x45a0a6
cmp ax, 0x89
je 0x45a0a6
cmp ax, 0x8a
je 0x45a0a6
cmp ax, 0xf0
je 0x45a0a6
cmp ax, 0xf1
je 0x45a0a6
cmp ax, 0xbe
jl 0x45a06f
cmp ax, 0xc2
jle 0x45a0a6
cmp dl, 6
jne 0x45a0c0
mov edx, dword [esp + 0xfc]
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45a0a6
cmp ax, 0x72
je 0x45a0a6
cmp ax, 0x86
je 0x45a0a6
cmp ax, 0x9a
je 0x45a0a6
cmp ax, 0xae
je 0x45a0a6
cmp ax, 0xc2
jne 0x45a0c0
mov eax, dword [ebp + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov esi, edx
shr esi, 5
jmp 0x45a0c2
xor esi, esi
and ebx, 0x4000
cmp ebx, 0x4000
jne 0x45a0e0
mov eax, 0xcccccccd
mul dword [ebp + 0x98]
shr edx, 2
jmp 0x45a0e2
xor edx, edx
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x104]
push 0x15f
push ebx
push eax
mov eax, dword [ebp + 0x98]
push ecx
mov ecx, dword [ebp + 0x48]
add eax, ecx
mov ecx, dword [esp + 0x48]
add eax, edx
add eax, esi
add eax, edi
push eax
call fcn.0045fab0
mov si, word [ebx + 0x1c]
mov ecx, 1
and esi, 0x100
mov dword [esp + 0x44], eax
cmp esi, 0x100
mov edx, ecx
jne 0x45a131
test eax, eax
je 0x45a137
cmp dword [esp + 0x60], ecx
jne 0x45a16b
mov esi, dword [esp + 0x104]
mov dword [esp + 0x44], ecx
mov ecx, 0xb
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x10c]
mov eax, dword [esp + 0xfc]
movsw word es:[edi], word [esi]
xor edx, edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
jmp 0x45a173
cmp eax, ecx
jne 0x45a857
mov esi, dword [esp + 0x84]
test esi, esi
jne 0x45a190
mov eax, dword [esp + 0x94]
test eax, eax
jne 0x45a190
mov ecx, 1
jmp 0x45a192
xor ecx, ecx
mov eax, dword [ebp + 0x2c]
mov edi, dword [ebp + 0x18]
add eax, edi
push edx
push esi
push ecx
mov ecx, dword [esp + 0x104]
mov edx, eax
shr edx, 2
lea eax, [eax + eax*2]
push ecx
mov ecx, dword [ebp + 0x30]
add edx, eax
mov eax, dword [esp + 0x2c]
add edx, ecx
mov ecx, dword [esp + 0x4c]
push edx
mov edx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x124]
push edx
mov edx, dword [esp + 0x118]
push eax
push ecx
mov ecx, dword [esp + 0x5c]
push ebp
push edx
jmp 0x45a852
mov si, word [edx + 0x850]
mov eax, esi
mov dword [esp + 0x18], esi
and eax, 0x1000
test ax, ax
jne 0x45a31a
mov bx, word [edx + 0x84e]
mov cl, bl
and cl, 2
cmp cl, 2
je 0x45a21c
mov eax, esi
and eax, 0x400
cmp eax, 0x400
je 0x45a21c
xor ebp, ebp
jmp 0x45a234
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xa58]
mov ebp, eax
mov ecx, dword [ecx + 0x98]
cmp eax, ecx
jb 0x45a234
mov ebp, ecx
mov al, bl
and al, 0x40
cmp al, 0x40
je 0x45a24e
and esi, 0x400
cmp esi, 0x400
jne 0x45a2de
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45a290
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45a26c
cmp ax, 0x3f
jle 0x45a2c0
cmp ax, 0x89
je 0x45a2c0
cmp ax, 0x8a
je 0x45a2c0
cmp ax, 0xf0
je 0x45a2c0
cmp ax, 0xf1
je 0x45a2c0
cmp ax, 0xbe
jl 0x45a290
cmp ax, 0xc2
jle 0x45a2c0
cmp cl, 6
jne 0x45a2de
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45a2c0
cmp ax, 0x72
je 0x45a2c0
cmp ax, 0x86
je 0x45a2c0
cmp ax, 0x9a
je 0x45a2c0
cmp ax, 0xae
je 0x45a2c0
cmp ax, 0xc2
jne 0x45a2de
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov esi, edx
shr esi, 5
jmp 0x45a2e4
mov edi, dword [esp + 0x14]
xor esi, esi
and ebx, 0x4000
cmp ebx, 0x4000
jne 0x45a302
mov eax, 0xcccccccd
mul dword [edi + 0x98]
shr edx, 2
jmp 0x45a304
xor edx, edx
mov ecx, dword [edi + 0x98]
mov ebx, dword [edi + 0x48]
add ecx, ebx
add ecx, edx
add ecx, esi
add ecx, ebp
jmp 0x45a572
mov bp, word [edx + 0x84e]
mov edi, ebp
and edi, 2
cmp di, 2
je 0x45a344
mov eax, esi
and eax, 0x400
cmp eax, 0x400
je 0x45a344
mov dword [esp + 0x10], 0
jmp 0x45a360
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xa58]
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 0x98]
cmp eax, ecx
jb 0x45a360
mov dword [esp + 0x10], ecx
mov eax, ebp
and eax, 0x40
cmp ax, 0x40
mov dword [esp + 0x2c], eax
je 0x45a381
and esi, 0x400
cmp esi, 0x400
jne 0x45a411
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45a3c3
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45a39f
cmp ax, 0x3f
jle 0x45a3f3
cmp ax, 0x89
je 0x45a3f3
cmp ax, 0x8a
je 0x45a3f3
cmp ax, 0xf0
je 0x45a3f3
cmp ax, 0xf1
je 0x45a3f3
cmp ax, 0xbe
jl 0x45a3c3
cmp ax, 0xc2
jle 0x45a3f3
cmp cl, 6
jne 0x45a411
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45a3f3
cmp ax, 0x72
je 0x45a3f3
cmp ax, 0x86
je 0x45a3f3
cmp ax, 0x9a
je 0x45a3f3
cmp ax, 0xae
je 0x45a3f3
cmp ax, 0xc2
jne 0x45a411
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ebx, edx
shr ebx, 5
jmp 0x45a417
mov esi, dword [esp + 0x14]
xor ebx, ebx
and ebp, 0x4000
cmp bp, 0x4000
mov dword [esp + 0x34], ebp
jne 0x45a43c
mov eax, 0xcccccccd
mul dword [esi + 0x98]
shr edx, 2
mov dword [esp + 0x5c], edx
jmp 0x45a444
mov dword [esp + 0x5c], 0
cmp di, 2
je 0x45a462
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x45a462
mov edx, dword [esp + 0x1c]
xor ebp, ebp
jmp 0x45a47a
mov edx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x98]
mov eax, dword [edx + 0xa58]
cmp eax, ecx
mov ebp, eax
jb 0x45a47a
mov ebp, ecx
cmp word [esp + 0x2c], 0x40
je 0x45a496
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
jne 0x45a522
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45a4d8
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45a4b4
cmp ax, 0x3f
jle 0x45a508
cmp ax, 0x89
je 0x45a508
cmp ax, 0x8a
je 0x45a508
cmp ax, 0xf0
je 0x45a508
cmp ax, 0xf1
je 0x45a508
cmp ax, 0xbe
jl 0x45a4d8
cmp ax, 0xc2
jle 0x45a508
cmp cl, 6
jne 0x45a522
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45a508
cmp ax, 0x72
je 0x45a508
cmp ax, 0x86
je 0x45a508
cmp ax, 0x9a
je 0x45a508
cmp ax, 0xae
je 0x45a508
cmp ax, 0xc2
jne 0x45a522
mov eax, dword [esi + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov ecx, edx
shr ecx, 5
jmp 0x45a524
xor ecx, ecx
cmp word [esp + 0x34], 0x4000
jne 0x45a53d
mov eax, 0xcccccccd
mul dword [esi + 0x98]
shr edx, 2
jmp 0x45a53f
xor edx, edx
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x98]
mov edi, dword [eax + 0x48]
add edx, esi
mov eax, 0xcccccccd
add edx, ecx
add edx, ebp
mov ebp, dword [esp + 0x5c]
add edx, edi
mul edx
mov ecx, edx
mov edx, dword [esp + 0x10]
shr ecx, 2
add ecx, esi
add ecx, ebp
add ecx, ebx
add ecx, edx
add ecx, edi
mov eax, dword [esp + 0xfc]
mov bx, word [eax + 0x84e]
mov dl, bl
and dl, 2
cmp dl, 2
je 0x45a5a8
mov ax, word [eax + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x45a5a8
mov ebp, dword [esp + 0x100]
xor edi, edi
jmp 0x45a5ca
mov edx, dword [esp + 0xfc]
mov ebp, dword [esp + 0x100]
mov eax, dword [edx + 0xa58]
mov edx, dword [ebp + 0x98]
cmp eax, edx
mov edi, eax
jb 0x45a5ca
mov edi, edx
mov al, bl
and al, 0x40
cmp al, 0x40
je 0x45a5f0
mov edx, dword [esp + 0xfc]
mov ax, word [edx + 0x850]
and eax, 0x400
cmp eax, 0x400
jne 0x45a68a
mov eax, dword [esp + 0xfc]
mov dl, byte [eax + 0x6e0]
cmp dl, 1
jne 0x45a639
mov ax, word [eax + 0x6e2]
cmp ax, 0x34
jl 0x45a615
cmp ax, 0x3f
jle 0x45a670
cmp ax, 0x89
je 0x45a670
cmp ax, 0x8a
je 0x45a670
cmp ax, 0xf0
je 0x45a670
cmp ax, 0xf1
je 0x45a670
cmp ax, 0xbe
jl 0x45a639
cmp ax, 0xc2
jle 0x45a670
cmp dl, 6
jne 0x45a68a
mov edx, dword [esp + 0xfc]
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45a670
cmp ax, 0x72
je 0x45a670
cmp ax, 0x86
je 0x45a670
cmp ax, 0x9a
je 0x45a670
cmp ax, 0xae
je 0x45a670
cmp ax, 0xc2
jne 0x45a68a
mov eax, dword [ebp + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov esi, edx
shr esi, 5
jmp 0x45a68c
xor esi, esi
and ebx, 0x4000
cmp ebx, 0x4000
jne 0x45a6aa
mov eax, 0xcccccccd
mul dword [ebp + 0x98]
shr edx, 2
jmp 0x45a6ac
xor edx, edx
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x104]
push 0x43
push ebx
push eax
mov eax, dword [ebp + 0x48]
push ecx
mov ecx, dword [ebp + 0x98]
lea ecx, [eax + ecx*4]
add ecx, edx
add ecx, esi
add ecx, edi
push ecx
mov ecx, dword [esp + 0x4c]
call fcn.0045fab0
mov si, word [ebx + 0x1c]
mov ecx, eax
and esi, 0x100
mov edx, 1
cmp esi, 0x100
mov dword [esp + 0x44], ecx
mov eax, edx
jne 0x45a6fb
test ecx, ecx
je 0x45a701
cmp dword [esp + 0x60], edx
jne 0x45a735
mov esi, dword [esp + 0x104]
mov ecx, 0xb
mov edi, ebx
mov dword [esp + 0x44], edx
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x10c]
mov ecx, dword [esp + 0xfc]
movsw word es:[edi], word [esi]
xor eax, eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], ebp
jmp 0x45a73d
cmp ecx, edx
jne 0x45a857
mov edx, dword [esp + 0x84]
test edx, edx
jne 0x45a75a
mov ecx, dword [esp + 0x94]
test ecx, ecx
jne 0x45a75a
mov ecx, 1
jmp 0x45a75c
xor ecx, ecx
mov esi, dword [ebp + 0x18]
push eax
mov eax, dword [ebp + 0x2c]
push edx
mov edx, dword [esp + 0x100]
add eax, esi
push ecx
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [ebp + 0x30]
lea eax, [eax + eax*2]
add eax, edx
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x124]
push edx
mov edx, dword [esp + 0x118]
push eax
push ecx
mov ecx, dword [esp + 0x5c]
push ebp
push edx
jmp 0x45a852
mov edx, 1
cmp ebp, edx
mov dword [esp + 0x44], edx
jne 0x45a7f0
mov esi, dword [esp + 0x104]
mov edi, dword [esp + 0x28]
mov ecx, 0xb
mov eax, dword [esp + 0x10c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xfc]
xor edx, edx
movsw word es:[edi], word [esi]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0xf8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
mov ebp, dword [esp + 0x84]
test ebp, ebp
jne 0x45a80d
mov eax, dword [esp + 0x94]
test eax, eax
jne 0x45a80d
mov ecx, 1
jmp 0x45a80f
xor ecx, ecx
mov ebx, dword [esp + 0xfc]
push edx
push ebp
push ecx
mov eax, dword [ebx + 0x20]
push esi
mov ecx, eax
imul ecx, eax
mov eax, 0xaaaaaaab
mul ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
shr edx, 2
add edx, 0x32
push edx
mov edx, dword [esp + 0x50]
push edx
mov edx, dword [esp + 0x124]
push eax
mov eax, dword [esp + 0x11c]
push ecx
push edx
push eax
push ebx
mov ecx, edi
call fcn.0045f5d0
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x114]
push eax
mov eax, dword [esp + 0x108]
push ecx
mov ecx, dword [esp + 0x114]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x54]
jmp 0x45b630
mov eax, dword [esp + 0x3c]
cmp dword [eax + 0x43a4], 2
je case.0x454e31.7
mov cx, word [edx + 0x850]
mov eax, dword [esp + 0x14]
and ecx, 0x1000
test cx, cx
jne 0x45a8be
mov edx, dword [eax + 0x94]
mov ecx, dword [eax + 0x44]
jmp 0x45a8d6
mov ecx, dword [eax + 0x94]
mov esi, dword [eax + 0x44]
mov eax, 0xcccccccd
lea edx, [esi + ecx]
mul edx
shr edx, 2
add edx, esi
movsx eax, word [esp + 0x114]
mov ebp, dword [esp + 0x100]
mov esi, dword [esp + 0x104]
add edx, ecx
push eax
mov ecx, dword [ebp + 0x44]
mov eax, dword [ebp + 0x94]
push ebx
push esi
add ecx, eax
push edx
push ecx
mov ecx, edi
call fcn.0045fab0
mov dx, word [ebx + 0x1c]
mov dword [esp + 0x44], eax
and edx, 0x100
cmp edx, 0x100
jne 0x45a91f
test eax, eax
je 0x45a926
cmp dword [esp + 0x60], 1
jne 0x45a95f
mov edi, dword [esp + 0x28]
mov ecx, 0xb
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x44], 1
movsw word es:[edi], word [esi]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], ebp
jmp 0x45a968
cmp eax, 1
jne 0x45b635
cmp dword [edi + 0x31d0], 1
je 0x45a9b4
mov eax, dword [edi + 0x32c4]
cmp eax, 0x84
jl 0x45a985
cmp eax, 0x88
jle 0x45a9b4
cmp eax, 0xb4
jl 0x45a993
cmp eax, 0xbc
jle 0x45a9b4
mov edx, dword [ebp + 0x44]
mov edi, dword [ebp + 0x94]
add edx, edi
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0xf8]
shr edx, 4
add edx, dword [eax + 0x38]
jmp 0x45a9b9
mov edx, 5
mov ecx, dword [esp + 0x3c]
push 0
push 0
push 0
push edx
push 0xc
call fcn.0042b2d0
cmp eax, 1
jne case.0x454e31.7
or byte [ebx + 0x1b], 0x10
mov eax, dword [esp + 0x108]
lea edx, [esp + 0x50]
push edx
push eax
call dword [sym.imp.Staff2.dll_char___cdecl_STAFFGetDirection_struct_PIS___struct_PIS__]
mov ecx, dword [esp + 0x30]
add esp, 8
cmp al, 5
mov byte [ecx + 0x18], al
jne 0x45a9f9
mov byte [ecx + 0x18], 2
mov dl, byte [ecx + 0x18]
inc ecx
push edx
push ecx
mov ecx, dword [esp + 0xa0]
call fcn.004884b0
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x78]
mov eax, dword [esp + 0x44]
add edi, 0x2f
test eax, eax
mov dword [esp + 0x78], edi
je 0x45b762
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x45aa3d
cmp eax, dword [ebx + 0x79c]
je 0x45b762
mov ecx, dword [ebx + 0x79c]
test ecx, ecx
jne 0x45b6e4
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x118]
xor eax, eax
add ecx, 0x1a
mov byte [edi + esi - 1], 0xff
mov dword [ecx], eax
mov dword [ecx + 4], eax
jmp 0x45b76e
mov si, word [edx + 0x850]
mov ecx, esi
mov dword [esp + 0x18], esi
and ecx, 0x1000
test cx, cx
jne 0x45aba7
mov bx, word [edx + 0x84e]
mov al, bl
and al, 2
cmp al, 2
je 0x45aaa9
mov ecx, esi
and ecx, 0x400
cmp ecx, 0x400
je 0x45aaa9
xor ebp, ebp
jmp 0x45aac1
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xa58]
mov ebp, eax
mov ecx, dword [ecx + 0x98]
cmp eax, ecx
jb 0x45aac1
mov ebp, ecx
mov al, bl
and al, 0x40
cmp al, 0x40
je 0x45aadb
and esi, 0x400
cmp esi, 0x400
jne 0x45ab6b
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45ab1d
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45aaf9
cmp ax, 0x3f
jle 0x45ab4d
cmp ax, 0x89
je 0x45ab4d
cmp ax, 0x8a
je 0x45ab4d
cmp ax, 0xf0
je 0x45ab4d
cmp ax, 0xf1
je 0x45ab4d
cmp ax, 0xbe
jl 0x45ab1d
cmp ax, 0xc2
jle 0x45ab4d
cmp cl, 6
jne 0x45ab6b
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45ab4d
cmp ax, 0x72
je 0x45ab4d
cmp ax, 0x86
je 0x45ab4d
cmp ax, 0x9a
je 0x45ab4d
cmp ax, 0xae
je 0x45ab4d
cmp ax, 0xc2
jne 0x45ab6b
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov esi, edx
shr esi, 5
jmp 0x45ab71
mov edi, dword [esp + 0x14]
xor esi, esi
and ebx, 0x4000
cmp ebx, 0x4000
jne 0x45ab8f
mov eax, 0xcccccccd
mul dword [edi + 0x98]
shr edx, 2
jmp 0x45ab91
xor edx, edx
mov ecx, dword [edi + 0x98]
mov ebx, dword [edi + 0x48]
add ecx, ebx
add ecx, edx
add ecx, esi
add ecx, ebp
jmp 0x45adff
mov bp, word [edx + 0x84e]
mov edi, ebp
and edi, 2
cmp di, 2
je 0x45abd1
mov eax, esi
and eax, 0x400
cmp eax, 0x400
je 0x45abd1
mov dword [esp + 0x10], 0
jmp 0x45abed
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xa58]
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 0x98]
cmp eax, ecx
jb 0x45abed
mov dword [esp + 0x10], ecx
mov eax, ebp
and eax, 0x40
cmp ax, 0x40
mov dword [esp + 0x2c], eax
je 0x45ac0e
and esi, 0x400
cmp esi, 0x400
jne 0x45ac9e
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45ac50
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45ac2c
cmp ax, 0x3f
jle 0x45ac80
cmp ax, 0x89
je 0x45ac80
cmp ax, 0x8a
je 0x45ac80
cmp ax, 0xf0
je 0x45ac80
cmp ax, 0xf1
je 0x45ac80
cmp ax, 0xbe
jl 0x45ac50
cmp ax, 0xc2
jle 0x45ac80
cmp cl, 6
jne 0x45ac9e
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45ac80
cmp ax, 0x72
je 0x45ac80
cmp ax, 0x86
je 0x45ac80
cmp ax, 0x9a
je 0x45ac80
cmp ax, 0xae
je 0x45ac80
cmp ax, 0xc2
jne 0x45ac9e
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ebx, edx
shr ebx, 5
jmp 0x45aca4
mov esi, dword [esp + 0x14]
xor ebx, ebx
and ebp, 0x4000
cmp bp, 0x4000
mov dword [esp + 0x34], ebp
jne 0x45acc9
mov eax, 0xcccccccd
mul dword [esi + 0x98]
shr edx, 2
mov dword [esp + 0x5c], edx
jmp 0x45acd1
mov dword [esp + 0x5c], 0
cmp di, 2
je 0x45acef
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
je 0x45acef
mov edx, dword [esp + 0x1c]
xor ebp, ebp
jmp 0x45ad07
mov edx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x98]
mov eax, dword [edx + 0xa58]
cmp eax, ecx
mov ebp, eax
jb 0x45ad07
mov ebp, ecx
cmp word [esp + 0x2c], 0x40
je 0x45ad23
mov eax, dword [esp + 0x18]
and eax, 0x400
cmp eax, 0x400
jne 0x45adaf
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45ad65
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45ad41
cmp ax, 0x3f
jle 0x45ad95
cmp ax, 0x89
je 0x45ad95
cmp ax, 0x8a
je 0x45ad95
cmp ax, 0xf0
je 0x45ad95
cmp ax, 0xf1
je 0x45ad95
cmp ax, 0xbe
jl 0x45ad65
cmp ax, 0xc2
jle 0x45ad95
cmp cl, 6
jne 0x45adaf
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45ad95
cmp ax, 0x72
je 0x45ad95
cmp ax, 0x86
je 0x45ad95
cmp ax, 0x9a
je 0x45ad95
cmp ax, 0xae
je 0x45ad95
cmp ax, 0xc2
jne 0x45adaf
mov eax, dword [esi + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov ecx, edx
shr ecx, 5
jmp 0x45adb1
xor ecx, ecx
cmp word [esp + 0x34], 0x4000
jne 0x45adca
mov eax, 0xcccccccd
mul dword [esi + 0x98]
shr edx, 2
jmp 0x45adcc
xor edx, edx
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x98]
mov edi, dword [eax + 0x48]
add edx, esi
mov eax, 0xcccccccd
add edx, ecx
add edx, ebp
mov ebp, dword [esp + 0x5c]
add edx, edi
mul edx
mov ecx, edx
mov edx, dword [esp + 0x10]
shr ecx, 2
add ecx, esi
add ecx, ebp
add ecx, ebx
add ecx, edx
add ecx, edi
mov eax, dword [esp + 0xfc]
mov bx, word [eax + 0x84e]
mov dl, bl
and dl, 2
cmp dl, 2
je 0x45ae35
mov ax, word [eax + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x45ae35
mov ebp, dword [esp + 0x100]
xor edi, edi
jmp 0x45ae57
mov edx, dword [esp + 0xfc]
mov ebp, dword [esp + 0x100]
mov eax, dword [edx + 0xa58]
mov edx, dword [ebp + 0x98]
cmp eax, edx
mov edi, eax
jb 0x45ae57
mov edi, edx
mov esi, dword [esp + 0xfc]
mov al, bl
and al, 0x40
cmp al, 0x40
je 0x45ae7f
mov dx, word [esi + 0x850]
and edx, 0x400
cmp edx, 0x400
jne 0x45af0b
mov dl, byte [esi + 0x6e0]
cmp dl, 1
jne 0x45aec1
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x45ae9d
cmp ax, 0x3f
jle 0x45aef1
cmp ax, 0x89
je 0x45aef1
cmp ax, 0x8a
je 0x45aef1
cmp ax, 0xf0
je 0x45aef1
cmp ax, 0xf1
je 0x45aef1
cmp ax, 0xbe
jl 0x45aec1
cmp ax, 0xc2
jle 0x45aef1
cmp dl, 6
jne 0x45af0b
mov ax, word [esi + 0x6e2]
cmp ax, 0x54
je 0x45aef1
cmp ax, 0x72
je 0x45aef1
cmp ax, 0x86
je 0x45aef1
cmp ax, 0x9a
je 0x45aef1
cmp ax, 0xae
je 0x45aef1
cmp ax, 0xc2
jne 0x45af0b
mov eax, dword [ebp + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov esi, edx
shr esi, 5
jmp 0x45af0d
xor esi, esi
and ebx, 0x4000
cmp ebx, 0x4000
jne 0x45af2b
mov eax, 0xcccccccd
mul dword [ebp + 0x98]
shr edx, 2
jmp 0x45af2d
xor edx, edx
movsx eax, word [esp + 0x114]
mov ebx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x108]
push ebx
push eax
mov eax, dword [ebp + 0x48]
push ecx
mov ecx, dword [ebp + 0x98]
add ecx, eax
add ecx, edx
add ecx, esi
add ecx, edi
push ecx
mov ecx, dword [esp + 0x4c]
call fcn.0045fab0
mov dx, word [ebx + 0x1c]
mov dword [esp + 0x44], eax
and edx, 0x100
cmp edx, 0x100
jne 0x45af79
test eax, eax
je 0x45af88
mov eax, dword [esp + 0x60]
mov edx, 1
cmp eax, edx
jne 0x45afbf
jmp 0x45af8d
mov edx, 1
mov esi, dword [esp + 0x104]
mov ecx, 0xb
mov edi, ebx
mov eax, dword [esp + 0x10c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0x44], edx
movsw word es:[edi], word [esi]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], ebp
jmp 0x45afc5
cmp dword [esp + 0x44], edx
jne 0x45b034
mov eax, dword [esp + 0x38]
cmp dword [eax + 0x31d0], edx
je 0x45b014
mov eax, dword [eax + 0x32c4]
cmp eax, 0x84
jl 0x45afe5
cmp eax, 0x88
jle 0x45b014
cmp eax, 0xb4
jl 0x45aff3
cmp eax, 0xbc
jle 0x45b014
mov edx, dword [ebp + 0x94]
mov edi, dword [ebp + 0x44]
add edx, edi
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0xf8]
shr edx, 3
add edx, dword [eax + 0x38]
jmp 0x45b019
mov edx, 5
mov ecx, dword [esp + 0x3c]
push 0
push 0
push 0
push edx
push 0xd
call fcn.0042b2d0
cmp eax, 1
jne 0x45b034
or byte [ebx + 0x1b], 0x20
cmp word [esp + 0x114], 0x54
jne 0x45b635
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x110]
push edx
mov edx, dword [esp + 0x104]
push eax
mov eax, dword [esp + 0x110]
push ebx
push ecx
mov ecx, dword [esp + 0x4c]
push edx
push eax
jmp 0x45b630
mov cx, word [edx + 0x850]
mov eax, dword [esp + 0x14]
and ecx, 0x1000
test cx, cx
jne 0x45b095
mov edx, dword [eax + 0x94]
mov ecx, dword [eax + 0x44]
jmp 0x45b0ad
mov ecx, dword [eax + 0x94]
mov esi, dword [eax + 0x44]
mov eax, 0xcccccccd
lea edx, [esi + ecx]
mul edx
shr edx, 2
add edx, esi
movsx eax, word [esp + 0x114]
mov esi, dword [esp + 0x100]
add edx, ecx
mov ecx, dword [esp + 0x104]
push eax
mov eax, dword [esi + 0x94]
push ebx
push ecx
push edx
mov edx, dword [esi + 0x44]
mov ecx, edi
add edx, eax
push edx
call fcn.0045fab0
mov ebp, 1
mov dword [esp + 0x44], eax
cmp eax, ebp
jne 0x45b635
cmp dword [edi + 0x31d0], ebp
je 0x45b138
mov eax, dword [edi + 0x32c4]
cmp eax, 0x84
jl 0x45b109
cmp eax, 0x88
jle 0x45b138
cmp eax, 0xb4
jl 0x45b117
cmp eax, 0xbc
jle 0x45b138
mov ecx, dword [esi + 0x44]
mov edi, dword [esi + 0x94]
add ecx, edi
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xf8]
shr edx, 4
add edx, dword [eax + 0x38]
jmp 0x45b13d
mov edx, 5
mov ecx, dword [esp + 0x3c]
push 0
push 0
push 0
push edx
push 0x10
call fcn.0042b2d0
cmp eax, ebp
jne 0x45b635
or word [ebx + 0x1c], bp
jmp 0x45b635
mov cx, word [edx + 0x850]
mov eax, dword [esp + 0x14]
and ecx, 0x1000
test cx, cx
jne 0x45b181
mov edx, dword [eax + 0x94]
mov ecx, dword [eax + 0x44]
jmp 0x45b199
mov ecx, dword [eax + 0x94]
mov esi, dword [eax + 0x44]
mov eax, 0xcccccccd
lea edx, [esi + ecx]
mul edx
shr edx, 2
add edx, esi
movsx eax, word [esp + 0x114]
add edx, ecx
mov ecx, dword [esp + 0x104]
push eax
mov eax, dword [esp + 0x104]
push ebx
push ecx
mov ebp, dword [eax + 0x44]
push edx
mov edx, dword [eax + 0x94]
mov ecx, edi
add edx, ebp
push edx
call fcn.0045fab0
cmp eax, 1
mov dword [esp + 0x44], eax
jne 0x45b635
mov eax, dword [esp + 0x1c]
test byte [eax + 0x855], 0x30
jne 0x45b1fb
mov ecx, dword [esp + 0x3c]
push ebx
call fcn.0042e6f0
mov ecx, dword [esp + 0x3c]
push ebx
call fcn.0042e830
jmp 0x45b635
test byte [ebx + 0x1c], 8
je 0x45b635
mov ecx, dword [esp + 0x3c]
push 1
push 0
push 0x13
call fcn.0042cb70
and word [ebx + 0x1c], 0xfff7
jmp 0x45b635
mov cx, word [edx + 0x850]
mov eax, dword [esp + 0x14]
and ecx, 0x1000
test cx, cx
jne 0x45b240
mov edx, dword [eax + 0x94]
mov ecx, dword [eax + 0x44]
jmp 0x45b258
mov ecx, dword [eax + 0x94]
mov esi, dword [eax + 0x44]
mov eax, 0xcccccccd
lea edx, [esi + ecx]
mul edx
shr edx, 2
add edx, esi
movsx eax, word [esp + 0x114]
mov esi, dword [esp + 0x100]
add edx, ecx
mov ecx, dword [esp + 0x104]
push eax
mov eax, dword [esi + 0x94]
push ebx
push ecx
push edx
mov edx, dword [esi + 0x44]
mov ecx, edi
add edx, eax
push edx
call fcn.0045fab0
cmp eax, 1
mov dword [esp + 0x44], eax
jne 0x45b635
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x94]
add ecx, eax
mov eax, 0x51eb851f
mul ecx
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x3c]
shr edx, 4
mov edi, dword [eax + 0x38]
push 0
push 0
add edx, edi
push 0
push edx
push 0x2b
call fcn.0042b2d0
test eax, eax
je 0x45b635
mov ecx, dword [esp + 0x3c]
push ebx
call fcn.0042e830
or byte [ebx + 0x1f], 8
jmp 0x45b635
mov bx, word [edx + 0x84e]
mov cl, bl
mov dword [esp + 0x5c], ebx
and cl, 2
cmp cl, 2
je 0x45b314
mov ax, word [edx + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x45b314
mov dword [esp + 0x10], 0
jmp 0x45b330
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xa58]
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 0x98]
cmp eax, ecx
jb 0x45b330
mov dword [esp + 0x10], ecx
and bl, 0x40
cmp bl, 0x40
je 0x45b34f
mov ax, word [edx + 0x850]
and eax, 0x400
cmp eax, 0x400
jne 0x45b3df
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45b391
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45b36d
cmp ax, 0x3f
jle 0x45b3c1
cmp ax, 0x89
je 0x45b3c1
cmp ax, 0x8a
je 0x45b3c1
cmp ax, 0xf0
je 0x45b3c1
cmp ax, 0xf1
je 0x45b3c1
cmp ax, 0xbe
jl 0x45b391
cmp ax, 0xc2
jle 0x45b3c1
cmp cl, 6
jne 0x45b3df
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45b3c1
cmp ax, 0x72
je 0x45b3c1
cmp ax, 0x86
je 0x45b3c1
cmp ax, 0x9a
je 0x45b3c1
cmp ax, 0xae
je 0x45b3c1
cmp ax, 0xc2
jne 0x45b3df
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov edi, edx
shr edi, 5
jmp 0x45b3e5
mov ebx, dword [esp + 0x14]
xor edi, edi
mov eax, dword [esp + 0x5c]
and eax, 0x4000
cmp eax, 0x4000
jne 0x45b409
mov eax, 0xcccccccd
mul dword [ebx + 0x98]
shr edx, 2
mov dword [esp + 0x5c], edx
jmp 0x45b411
mov dword [esp + 0x5c], 0
mov edx, dword [esp + 0xfc]
mov ax, word [edx + 0x84e]
mov dword [esp + 0x30], eax
and al, 2
cmp al, 2
je 0x45b447
mov ax, word [edx + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x45b447
mov ebp, dword [esp + 0x100]
xor esi, esi
jmp 0x45b462
mov ebp, dword [esp + 0x100]
mov eax, dword [edx + 0xa58]
mov esi, eax
mov ecx, dword [ebp + 0x98]
cmp eax, ecx
jb 0x45b462
mov esi, ecx
mov cl, byte [esp + 0x30]
and cl, 0x40
cmp cl, 0x40
je 0x45b485
mov ax, word [edx + 0x850]
and eax, 0x400
cmp eax, 0x400
jne 0x45b511
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45b4c7
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45b4a3
cmp ax, 0x3f
jle 0x45b4f7
cmp ax, 0x89
je 0x45b4f7
cmp ax, 0x8a
je 0x45b4f7
cmp ax, 0xf0
je 0x45b4f7
cmp ax, 0xf1
je 0x45b4f7
cmp ax, 0xbe
jl 0x45b4c7
cmp ax, 0xc2
jle 0x45b4f7
cmp cl, 6
jne 0x45b511
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45b4f7
cmp ax, 0x72
je 0x45b4f7
cmp ax, 0x86
je 0x45b4f7
cmp ax, 0x9a
je 0x45b4f7
cmp ax, 0xae
je 0x45b4f7
cmp ax, 0xc2
jne 0x45b511
mov eax, dword [ebp + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov ecx, edx
shr ecx, 5
jmp 0x45b513
xor ecx, ecx
mov eax, dword [esp + 0x30]
and eax, 0x4000
cmp eax, 0x4000
jne 0x45b533
mov eax, 0xcccccccd
mul dword [ebp + 0x98]
shr edx, 2
jmp 0x45b535
xor edx, edx
movsx eax, word [esp + 0x114]
push eax
mov eax, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x10c]
push eax
mov eax, dword [ebx + 0x98]
add eax, dword [ebx + 0x48]
mov ebx, dword [esp + 0x68]
add eax, ebx
add eax, edi
mov edi, dword [esp + 0x1c]
add eax, edi
mov edi, dword [ebp + 0x48]
push eax
mov eax, dword [ebp + 0x98]
add eax, edi
mov edi, dword [esp + 0x48]
add eax, edx
add eax, ecx
mov ecx, edi
add eax, esi
push eax
call fcn.0045fab0
mov esi, eax
cmp esi, 1
mov dword [esp + 0x44], esi
jne 0x45b5fa
cmp dword [edi + 0x31d0], esi
je 0x45b5d6
mov eax, dword [edi + 0x32c4]
cmp eax, 0x84
jl 0x45b5a7
cmp eax, 0x88
jle 0x45b5d6
cmp eax, 0xb4
jl 0x45b5b5
cmp eax, 0xbc
jle 0x45b5d6
mov ecx, dword [ebp + 0x94]
mov eax, dword [ebp + 0x44]
add ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xf8]
shr edx, 4
add edx, dword [eax + 0x38]
jmp 0x45b5db
mov edx, 5
mov ecx, dword [esp + 0x3c]
push 0
push 0
push 0
push edx
push 0x37
call fcn.0042b2d0
cmp eax, 1
jne 0x45b5fa
mov eax, dword [esp + 0x28]
or byte [eax + 0x20], 0x80
cmp word [esp + 0x114], 0x17d
jne 0x45b635
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
push esi
push ecx
mov ecx, dword [esp + 0x114]
push edx
mov edx, dword [esp + 0x108]
push eax
mov eax, dword [esp + 0x114]
push ecx
push edx
push eax
mov ecx, edi
call fcn.0045f750
mov eax, dword [esp + 0x44]
test eax, eax
jne case.0x454e31.7
mov ecx, dword [esp + 0xf8]
mov ebx, dword [esp + 0x1c]
cmp byte [ecx + 0x30], 0x18
je 0x45aa0f
mov dx, word [ebx + 0x850]
and edx, 0x2000
test dx, dx
je 0x45aa0f
mov eax, dword [ebx + 0x980]
test eax, eax
jne 0x45aa0f
mov eax, dword [ebx + 0xa3c]
test eax, eax
jne 0x45aa0f
mov edi, dword [esp + 0xfc]
mov esi, dword [esp + 0x10c]
mov ecx, esi
mov eax, dword [edi + 0x7a0]
push eax
call fcn.004396e0
mov eax, dword [edi + 0x7a0]
test eax, eax
jne 0x45b6d1
test byte [edi + 0x84c], 0x40
je 0x45b6d1
push 1
push 0
push 6
mov ecx, esi
call fcn.0042cb70
mov eax, dword [esp + 0x104]
and word [eax + 0x1a], 0xffbf
mov ecx, dword [edi + 0x7a4]
push ecx
mov ecx, esi
call fcn.00439790
jmp 0x45aa0f
mov edx, dword [esp + 0x14]
mov esi, dword [edx + 8]
cmp ecx, esi
jb 0x45b6fd
mov esi, dword [esp + 0x118]
mov byte [edi + esi - 1], 0x64
jmp 0x45b76e
cmp ecx, 0x1312d00
jbe 0x45b72d
mov eax, 0x51eb851f
mul esi
mov esi, edx
mov eax, ecx
shr esi, 5
xor edx, edx
div esi
cmp al, 0x64
jae 0x45b750
mov esi, dword [esp + 0x118]
and eax, 0xff
mov byte [edi + esi - 1], al
jmp 0x45b76e
lea eax, [ecx + ecx*4]
xor edx, edx
lea eax, [eax + eax*4]
shl eax, 2
div esi
cmp al, 0x64
jae 0x45b750
mov esi, dword [esp + 0x118]
and eax, 0xff
mov byte [edi + esi - 1], al
jmp 0x45b76e
mov esi, dword [esp + 0x118]
mov eax, 0x64
mov byte [edi + esi - 1], al
jmp 0x45b76e
mov esi, dword [esp + 0x118]
mov byte [edi + esi - 1], 0xfe
mov ecx, dword [esp + 0x28]
add ecx, 0x2f
cmp edi, 0x582
mov dword [esp + 0x28], ecx
jb 0x45b7b9
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0x104]
push 0x582
push esi
push eax
push ecx
mov ecx, dword [esp + 0x48]
push edx
call fcn.0045f9b0
xor eax, eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x78], eax
mov dword [esp + 0xac], eax
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x50]
push eax
mov eax, dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x110]
push edx
push eax
lea edx, [esp + 0xc0]
push ecx
mov ecx, dword [esp + 0xac]
push edx
call fcn.00488700
test eax, eax
jne 0x4549e7
mov eax, dword [esp + 0xf8]
mov al, byte [eax + 0x30]
test al, al
je 0x45b81e
cmp al, 0xf
je 0x45b81e
cmp al, 0x11
je 0x45b81e
cmp al, 0x16
je 0x45b81e
cmp al, 0x18
je 0x45b81e
cmp al, 0x26
je 0x45b81e
cmp al, 0x4e
jne 0x45e2a3
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x45e2a3
mov ebx, dword [esp + 0x38]
push 0xffffffffffffffff
mov ecx, ebx
call fcn.00464990
mov ecx, ebx
mov esi, eax
call fcn.00464a70
cmp eax, 1
jne 0x45b86f
mov edi, dword [esp + 0xfc]
mov ecx, dword [ebx + 0x3574]
push ecx
lea ecx, [ebx + 0x3310]
mov edx, dword [edi + 0xaf0]
push edx
call fcn.00402860
test eax, eax
je 0x45e2a3
jmp 0x45b876
mov edi, dword [esp + 0xfc]
test esi, esi
jle 0x45b89a
cmp esi, 0x28
jg 0x45b89a
mov eax, dword [edi + 0xaf0]
push esi
push eax
lea ecx, [ebx + 0x3310]
call fcn.00402700
test eax, eax
je 0x45e2a3
mov eax, dword [ebx + 0x32c8]
mov esi, dword [esp + 0x108]
lea ecx, [eax + 0x40]
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x54]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x94]
push eax
lea eax, [esp + 0xc0]
push esi
push eax
call dword [edx + 0x44]
test eax, eax
je 0x45e2a3
mov ebp, dword [esp + 0x100]
jmp 0x45b8e7
mov edi, dword [esp + 0xfc]
mov eax, dword [ebx + 0x32c4]
cmp eax, 0xb4
jne 0x45b8fd
cmp dword [edi + 0xaf0], 2
jne 0x45b90d
cmp eax, 0xb5
jne 0x45b920
cmp dword [edi + 0xaf0], 1
je 0x45b920
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x11c]
cmp byte [edx], 0x57
je 0x45e266
lea eax, [esp + 0x50]
lea ecx, [ebx + 0x323c]
push eax
push esi
call fcn.00486030
test eax, eax
je 0x45e266
mov eax, dword [esp + 0x24]
mov edi, 1
mov ecx, dword [eax + 0x120]
mov dword [esp + 0xb4], ecx
mov ecx, dword [eax + 0x174]
test ecx, ecx
jne 0x45e266
mov edx, eax
cmp byte [edx + 0xec], 3
jne 0x45b973
mov eax, dword [ebp + 0x70]
test eax, eax
je 0x45e266
mov eax, dword [esp + 0xf8]
movsx eax, byte [eax + 0x30]
cmp eax, 0x4e
ja case.0x45b98f.7
xor ecx, ecx
mov cl, byte [eax + 0x45e368]
jmp dword [ecx*4 + 0x45e348]
mov edx, dword [esp + 0xf8]
cmp byte [edx], 1
je 0x45d409
movsx eax, word [esp + 0x114]
cmp eax, 0x31
jg 0x45d047
je 0x45ce93
cmp eax, 0x2a
je 0x45bb64
cmp eax, 0x2e
jne 0x45d057
mov esi, dword [esp + 0xfc]
mov dx, word [esi + 0x84e]
mov al, dl
mov dword [esp + 0x30], edx
and al, 2
cmp al, 2
je 0x45ba08
mov cx, word [esi + 0x850]
and ecx, 0x400
cmp ecx, 0x400
je 0x45ba08
mov dword [esp + 0x10], 0
jmp 0x45ba20
mov eax, dword [esi + 0xa58]
mov ecx, dword [ebp + 0x98]
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x45ba20
mov dword [esp + 0x10], ecx
and dl, 0x40
cmp dl, 0x40
je 0x45ba41
mov dx, word [esi + 0x850]
and edx, 0x400
cmp edx, 0x400
jne 0x45bacd
mov cl, byte [esi + 0x6e0]
cmp cl, 1
jne 0x45ba83
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x45ba5f
cmp ax, 0x3f
jle 0x45bab3
cmp ax, 0x89
je 0x45bab3
cmp ax, 0x8a
je 0x45bab3
cmp ax, 0xf0
je 0x45bab3
cmp ax, 0xf1
je 0x45bab3
cmp ax, 0xbe
jl 0x45ba83
cmp ax, 0xc2
jle 0x45bab3
cmp cl, 6
jne 0x45bacd
mov ax, word [esi + 0x6e2]
cmp ax, 0x54
je 0x45bab3
cmp ax, 0x72
je 0x45bab3
cmp ax, 0x86
je 0x45bab3
cmp ax, 0x9a
je 0x45bab3
cmp ax, 0xae
je 0x45bab3
cmp ax, 0xc2
jne 0x45bacd
mov eax, dword [ebp + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov esi, edx
shr esi, 5
jmp 0x45bacf
xor esi, esi
mov eax, dword [esp + 0x30]
and eax, 0x4000
cmp eax, 0x4000
jne 0x45baf1
mov eax, 0xcccccccd
mul dword [ebp + 0x98]
mov edi, edx
shr edi, 2
jmp 0x45baf3
xor edi, edi
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x24]
push 0x2e
push edx
push eax
push ecx
mov ecx, dword [ebx + 0x32c8]
call fcn.0047ae20
mov edx, dword [ebp + 0x98]
mov ecx, dword [esp + 0x1c]
push eax
mov eax, dword [ebp + 0x48]
add edx, eax
add edx, ecx
mov ecx, ebx
add edx, edi
add edx, esi
push edx
call fcn.0045fab0
mov edi, eax
cmp edi, 1
jne 0x45d453
mov ecx, dword [ebp + 0x2c]
mov esi, dword [ebp + 0x18]
mov eax, dword [esp + 0xf8]
push eax
lea edx, [esi + ecx]
mov eax, 0xcccccccd
mul edx
mov eax, dword [ebp + 0x30]
shr edx, 2
call dword [sym.imp.rm3944.dll_NewAreaAttacks]
jmp 0x45d022
mov esi, dword [esp + 0xfc]
mov dx, word [esi + 0x84e]
mov al, dl
mov dword [esp + 0x30], edx
and al, 2
cmp al, 2
je 0x45bb9d
mov cx, word [esi + 0x850]
and ecx, 0x400
cmp ecx, 0x400
je 0x45bb9d
mov dword [esp + 0x10], 0
jmp 0x45bbb5
mov eax, dword [esi + 0xa58]
mov ecx, dword [ebp + 0x98]
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x45bbb5
mov dword [esp + 0x10], ecx
and dl, 0x40
cmp dl, 0x40
je 0x45bbd6
mov dx, word [esi + 0x850]
and edx, 0x400
cmp edx, 0x400
jne 0x45bc62
mov cl, byte [esi + 0x6e0]
cmp cl, 1
jne 0x45bc18
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x45bbf4
cmp ax, 0x3f
jle 0x45bc48
cmp ax, 0x89
je 0x45bc48
cmp ax, 0x8a
je 0x45bc48
cmp ax, 0xf0
je 0x45bc48
cmp ax, 0xf1
je 0x45bc48
cmp ax, 0xbe
jl 0x45bc18
cmp ax, 0xc2
jle 0x45bc48
cmp cl, 6
jne 0x45bc62
mov ax, word [esi + 0x6e2]
cmp ax, 0x54
je 0x45bc48
cmp ax, 0x72
je 0x45bc48
cmp ax, 0x86
je 0x45bc48
cmp ax, 0x9a
je 0x45bc48
cmp ax, 0xae
je 0x45bc48
cmp ax, 0xc2
jne 0x45bc62
mov eax, dword [ebp + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov esi, edx
shr esi, 5
jmp 0x45bc64
xor esi, esi
mov eax, dword [esp + 0x30]
and eax, 0x4000
cmp eax, 0x4000
jne 0x45bc86
mov eax, 0xcccccccd
mul dword [ebp + 0x98]
mov edi, edx
shr edi, 2
jmp 0x45bc88
xor edi, edi
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x24]
push 0x2a
push edx
push eax
push ecx
mov ecx, dword [ebx + 0x32c8]
call fcn.0047ae20
mov edx, dword [ebp + 0x48]
push eax
mov eax, dword [ebp + 0x98]
add edi, esi
mov esi, dword [esp + 0x20]
add edi, eax
add edi, esi
mov ecx, ebx
add edi, edx
push edi
call fcn.0045fab0
mov edi, eax
cmp edi, 1
mov dword [esp + 0x44], edi
jne 0x45d453
mov eax, 0xaaaaaaab
mov ebx, dword [ebp + 0x2c]
mul dword [ebp + 0x30]
mov edi, dword [ebp + 0x18]
shr edx, 1
add edx, ebx
add edx, edi
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0xfc]
mov bx, word [edx + 0x84e]
mov al, bl
and al, 2
cmp al, 2
je 0x45bd21
mov cx, word [edx + 0x850]
and ecx, 0x400
cmp ecx, 0x400
je 0x45bd21
mov dword [esp + 0x10], 0
jmp 0x45bd39
mov eax, dword [edx + 0xa58]
mov ecx, dword [ebp + 0x98]
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x45bd39
mov dword [esp + 0x10], ecx
mov al, bl
and al, 0x40
cmp al, 0x40
je 0x45bd5a
mov cx, word [edx + 0x850]
and ecx, 0x400
cmp ecx, 0x400
jne 0x45bde6
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45bd9c
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45bd78
cmp ax, 0x3f
jle 0x45bdcc
cmp ax, 0x89
je 0x45bdcc
cmp ax, 0x8a
je 0x45bdcc
cmp ax, 0xf0
je 0x45bdcc
cmp ax, 0xf1
je 0x45bdcc
cmp ax, 0xbe
jl 0x45bd9c
cmp ax, 0xc2
jle 0x45bdcc
cmp cl, 6
jne 0x45bde6
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45bdcc
cmp ax, 0x72
je 0x45bdcc
cmp ax, 0x86
je 0x45bdcc
cmp ax, 0x9a
je 0x45bdcc
cmp ax, 0xae
je 0x45bdcc
cmp ax, 0xc2
jne 0x45bde6
mov eax, dword [ebp + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov esi, edx
shr esi, 5
jmp 0x45bde8
xor esi, esi
and ebx, 0x4000
cmp ebx, 0x4000
jne 0x45be08
mov eax, 0xcccccccd
mul dword [ebp + 0x98]
mov edi, edx
shr edi, 2
jmp 0x45be0a
xor edi, edi
mov ebx, dword [esp + 0x100]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
mov ebp, dword [ebx + 0x98]
mov ecx, dword [ecx + 0x32c8]
push eax
mov dword [esp + 0x44], ebp
call fcn.0047ae20
mov ecx, dword [esp + 0x10]
mov edx, dword [ebx + 0x48]
add edi, esi
add edi, ecx
add edi, ebp
add edi, edx
mov edx, dword [esp + 0xfc]
cmp edi, eax
mov si, word [edx + 0x84e]
mov edi, esi
jbe 0x45c106
and edi, 2
cmp di, 2
je 0x45be7c
mov ax, word [edx + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x45be7c
mov dword [esp + 0x10], 0
jmp 0x45be8e
mov eax, dword [edx + 0xa58]
cmp eax, ebp
mov dword [esp + 0x10], eax
jb 0x45be8e
mov dword [esp + 0x10], ebp
mov eax, esi
and eax, 0x40
cmp ax, 0x40
mov dword [esp + 0x64], eax
je 0x45beb6
mov cx, word [edx + 0x850]
and ecx, 0x400
cmp ecx, 0x400
jne 0x45bf3f
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45bef8
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45bed4
cmp ax, 0x3f
jle 0x45bf28
cmp ax, 0x89
je 0x45bf28
cmp ax, 0x8a
je 0x45bf28
cmp ax, 0xf0
je 0x45bf28
cmp ax, 0xf1
je 0x45bf28
cmp ax, 0xbe
jl 0x45bef8
cmp ax, 0xc2
jle 0x45bf28
cmp cl, 6
jne 0x45bf3f
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45bf28
cmp ax, 0x72
je 0x45bf28
cmp ax, 0x86
je 0x45bf28
cmp ax, 0x9a
je 0x45bf28
cmp ax, 0xae
je 0x45bf28
cmp ax, 0xc2
jne 0x45bf3f
lea eax, [ebp + ebp*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
shr edx, 5
mov dword [esp + 0x74], edx
jmp 0x45bf47
mov dword [esp + 0x74], 0
and esi, 0x4000
cmp si, 0x4000
jne 0x45bf62
mov eax, 0xcccccccd
mul ebp
mov ebx, edx
shr ebx, 2
jmp 0x45bf64
xor ebx, ebx
mov edx, dword [esp + 0xfc]
cmp di, 2
je 0x45bf8e
mov ax, word [edx + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x45bf8e
mov dword [esp + 0x4c], 0
jmp 0x45bfa0
mov eax, dword [edx + 0xa58]
cmp eax, ebp
mov dword [esp + 0x4c], eax
jb 0x45bfa0
mov dword [esp + 0x4c], ebp
cmp word [esp + 0x64], 0x40
je 0x45bfc1
mov cx, word [edx + 0x850]
and ecx, 0x400
cmp ecx, 0x400
jne 0x45c04b
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45c003
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45bfdf
cmp ax, 0x3f
jle 0x45c033
cmp ax, 0x89
je 0x45c033
cmp ax, 0x8a
je 0x45c033
cmp ax, 0xf0
je 0x45c033
cmp ax, 0xf1
je 0x45c033
cmp ax, 0xbe
jl 0x45c003
cmp ax, 0xc2
jle 0x45c033
cmp cl, 6
jne 0x45c04b
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45c033
cmp ax, 0x72
je 0x45c033
cmp ax, 0x86
je 0x45c033
cmp ax, 0x9a
je 0x45c033
cmp ax, 0xae
je 0x45c033
cmp ax, 0xc2
jne 0x45c04b
mov ecx, dword [esp + 0x40]
lea eax, [ecx + ecx*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ebp, edx
shr ebp, 5
jmp 0x45c051
mov ecx, dword [esp + 0x40]
xor ebp, ebp
cmp si, 0x4000
jne 0x45c066
mov eax, 0xcccccccd
mul ecx
mov edi, edx
shr edi, 2
jmp 0x45c068
xor edi, edi
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x100]
push ecx
mov ecx, dword [edx + 0x32c8]
mov esi, dword [eax + 0x98]
call fcn.0047ae20
mov ecx, dword [esp + 0x100]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 1
mov edx, eax
mov eax, dword [ecx + 0x98]
add eax, ebx
mov ebx, dword [esp + 0x74]
add eax, ebx
mov ebx, dword [esp + 0x10]
add eax, ebx
mov ebx, dword [ecx + 0x48]
add eax, ebx
mov ecx, dword [esp + 0x24]
push ecx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 1
mov ebx, eax
sub ebx, edx
mov edx, dword [esp + 0x3c]
mov ecx, dword [edx + 0x32c8]
call fcn.0047ae20
mov edx, dword [esp + 0x100]
mov ecx, eax
mov eax, dword [esp + 0x4c]
add ecx, edi
mov edi, dword [edx + 0x48]
add ecx, ebp
add ecx, eax
mov eax, ebx
add ecx, esi
xor edx, edx
add ecx, edi
div ecx
mov ecx, eax
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
add edx, 0xa
jmp 0x45c3c7
and edi, 2
cmp di, 2
je 0x45c12c
mov ax, word [edx + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x45c12c
mov dword [esp + 0x10], 0
jmp 0x45c13e
mov eax, dword [edx + 0xa58]
cmp eax, ebp
mov dword [esp + 0x10], eax
jb 0x45c13e
mov dword [esp + 0x10], ebp
mov eax, esi
and eax, 0x40
cmp ax, 0x40
mov dword [esp + 0x64], eax
je 0x45c166
mov cx, word [edx + 0x850]
and ecx, 0x400
cmp ecx, 0x400
jne 0x45c1ef
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45c1a8
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45c184
cmp ax, 0x3f
jle 0x45c1d8
cmp ax, 0x89
je 0x45c1d8
cmp ax, 0x8a
je 0x45c1d8
cmp ax, 0xf0
je 0x45c1d8
cmp ax, 0xf1
je 0x45c1d8
cmp ax, 0xbe
jl 0x45c1a8
cmp ax, 0xc2
jle 0x45c1d8
cmp cl, 6
jne 0x45c1ef
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45c1d8
cmp ax, 0x72
je 0x45c1d8
cmp ax, 0x86
je 0x45c1d8
cmp ax, 0x9a
je 0x45c1d8
cmp ax, 0xae
je 0x45c1d8
cmp ax, 0xc2
jne 0x45c1ef
lea eax, [ebp + ebp*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
shr edx, 5
mov dword [esp + 0x74], edx
jmp 0x45c1f7
mov dword [esp + 0x74], 0
and esi, 0x4000
cmp si, 0x4000
mov dword [esp + 0x60], esi
jne 0x45c21a
mov esi, dword [esp + 0x40]
mov eax, 0xcccccccd
mul esi
mov ebx, edx
shr ebx, 2
jmp 0x45c220
mov esi, dword [esp + 0x40]
xor ebx, ebx
mov edx, dword [esp + 0xfc]
cmp di, 2
je 0x45c24a
mov ax, word [edx + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x45c24a
mov dword [esp + 0x4c], 0
jmp 0x45c25c
mov eax, dword [edx + 0xa58]
cmp eax, esi
mov dword [esp + 0x4c], eax
jb 0x45c25c
mov dword [esp + 0x4c], esi
cmp word [esp + 0x64], 0x40
je 0x45c27d
mov cx, word [edx + 0x850]
and ecx, 0x400
cmp ecx, 0x400
jne 0x45c303
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45c2bf
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45c29b
cmp ax, 0x3f
jle 0x45c2ef
cmp ax, 0x89
je 0x45c2ef
cmp ax, 0x8a
je 0x45c2ef
cmp ax, 0xf0
je 0x45c2ef
cmp ax, 0xf1
je 0x45c2ef
cmp ax, 0xbe
jl 0x45c2bf
cmp ax, 0xc2
jle 0x45c2ef
cmp cl, 6
jne 0x45c303
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45c2ef
cmp ax, 0x72
je 0x45c2ef
cmp ax, 0x86
je 0x45c2ef
cmp ax, 0x9a
je 0x45c2ef
cmp ax, 0xae
je 0x45c2ef
cmp ax, 0xc2
jne 0x45c303
lea eax, [esi + esi*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov ebp, edx
shr ebp, 5
jmp 0x45c305
xor ebp, ebp
cmp word [esp + 0x60], 0x4000
jne 0x45c31c
mov eax, 0xcccccccd
mul esi
mov edi, edx
shr edi, 2
jmp 0x45c31e
xor edi, edi
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x100]
push ecx
mov ecx, dword [edx + 0x32c8]
mov esi, dword [eax + 0x98]
call fcn.0047ae20
mov ecx, dword [esp + 0x100]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 1
mov edx, eax
mov eax, dword [ecx + 0x98]
add eax, ebx
mov ebx, dword [esp + 0x74]
add eax, ebx
mov ebx, dword [esp + 0x10]
add eax, ebx
mov ebx, dword [ecx + 0x48]
add eax, ebx
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x24]
shl ecx, 1
sub edx, ecx
mov ecx, dword [esp + 0x38]
push eax
mov dword [esp + 0xa0], edx
mov ecx, dword [ecx + 0x32c8]
call fcn.0047ae20
mov edx, dword [esp + 0x100]
mov ecx, eax
mov eax, dword [esp + 0x4c]
add ecx, edi
mov ebx, dword [edx + 0x48]
add ecx, ebp
add ecx, eax
mov eax, dword [esp + 0x9c]
add ecx, esi
xor edx, edx
add ecx, ebx
div ecx
mov ecx, eax
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
mov eax, edx
mov edx, 0xa
sub edx, eax
mov edi, dword [esp + 0x44]
cmp edx, 0x64
jbe 0x45c3e1
mov ebx, dword [esp + 0x100]
mov esi, 0x64
jmp 0x45ce32
mov edx, dword [esp + 0xfc]
mov bx, word [edx + 0x84e]
mov cl, bl
and cl, 2
cmp cl, 2
je 0x45c410
mov ax, word [edx + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x45c410
xor ebp, ebp
jmp 0x45c41e
mov eax, dword [edx + 0xa58]
cmp eax, esi
mov ebp, eax
jb 0x45c41e
mov ebp, esi
mov cl, bl
and cl, 0x40
cmp cl, 0x40
je 0x45c43f
mov ax, word [edx + 0x850]
and eax, 0x400
cmp eax, 0x400
jne 0x45c4c5
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45c481
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45c45d
cmp ax, 0x3f
jle 0x45c4b1
cmp ax, 0x89
je 0x45c4b1
cmp ax, 0x8a
je 0x45c4b1
cmp ax, 0xf0
je 0x45c4b1
cmp ax, 0xf1
je 0x45c4b1
cmp ax, 0xbe
jl 0x45c481
cmp ax, 0xc2
jle 0x45c4b1
cmp cl, 6
jne 0x45c4c5
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45c4b1
cmp ax, 0x72
je 0x45c4b1
cmp ax, 0x86
je 0x45c4b1
cmp ax, 0x9a
je 0x45c4b1
cmp ax, 0xae
je 0x45c4b1
cmp ax, 0xc2
jne 0x45c4c5
lea eax, [esi + esi*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov edi, edx
shr edi, 5
jmp 0x45c4c7
xor edi, edi
and ebx, 0x4000
cmp ebx, 0x4000
jne 0x45c4e3
mov eax, 0xcccccccd
mul esi
mov esi, edx
shr esi, 2
jmp 0x45c4e5
xor esi, esi
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
push edx
mov ecx, dword [eax + 0x32c8]
call fcn.0047ae20
mov ebx, dword [esp + 0x100]
mov ecx, dword [ebx + 0x98]
add ecx, esi
mov esi, dword [ebx + 0x48]
add ecx, edi
add ecx, ebp
add ecx, esi
cmp ecx, eax
jbe 0x45c62c
mov edi, dword [esp + 0xfc]
mov dx, word [edi + 0x84e]
and dx, 0x40
cmp dx, 0x40
je 0x45c544
mov ax, word [edi + 0x850]
and eax, 0x400
cmp eax, 0x400
jne 0x45c596
mov cl, byte [edi + 0x6e0]
cmp cl, 1
jne 0x45c586
mov ax, word [edi + 0x6e2]
cmp ax, 0x34
jl 0x45c562
cmp ax, 0x3f
jle 0x45c596
cmp ax, 0x89
je 0x45c596
cmp ax, 0x8a
je 0x45c596
cmp ax, 0xf0
je 0x45c596
cmp ax, 0xf1
je 0x45c596
cmp ax, 0xbe
jl 0x45c586
cmp ax, 0xc2
jle 0x45c596
cmp cl, 6
jne 0x45c596
mov cx, word [edi + 0x6e2]
mov dword [esp + 0x40], ecx
cmp dx, 0x40
je 0x45c5b1
mov dx, word [edi + 0x850]
and edx, 0x400
cmp edx, 0x400
jne 0x45c603
mov cl, byte [edi + 0x6e0]
cmp cl, 1
jne 0x45c5f3
mov ax, word [edi + 0x6e2]
cmp ax, 0x34
jl 0x45c5cf
cmp ax, 0x3f
jle 0x45c603
cmp ax, 0x89
je 0x45c603
cmp ax, 0x8a
je 0x45c603
cmp ax, 0xf0
je 0x45c603
cmp ax, 0xf1
je 0x45c603
cmp ax, 0xbe
jl 0x45c5f3
cmp ax, 0xc2
jle 0x45c603
cmp cl, 6
jne 0x45c603
mov ax, word [edi + 0x6e2]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x38]
push ecx
mov ecx, dword [esi + 0x32c8]
call fcn.0047ae20
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + 0x32c8]
push edx
call fcn.0047ae20
jmp 0x45c741
mov esi, dword [esp + 0xfc]
mov dx, word [esi + 0x84e]
and dx, 0x40
cmp dx, 0x40
je 0x45c657
mov ax, word [esi + 0x850]
and eax, 0x400
cmp eax, 0x400
jne 0x45c6a9
mov cl, byte [esi + 0x6e0]
cmp cl, 1
jne 0x45c699
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x45c675
cmp ax, 0x3f
jle 0x45c6a9
cmp ax, 0x89
je 0x45c6a9
cmp ax, 0x8a
je 0x45c6a9
cmp ax, 0xf0
je 0x45c6a9
cmp ax, 0xf1
je 0x45c6a9
cmp ax, 0xbe
jl 0x45c699
cmp ax, 0xc2
jle 0x45c6a9
cmp cl, 6
jne 0x45c6a9
mov cx, word [esi + 0x6e2]
mov dword [esp + 0x40], ecx
cmp dx, 0x40
je 0x45c6c4
mov dx, word [esi + 0x850]
and edx, 0x400
cmp edx, 0x400
jne 0x45c716
mov cl, byte [esi + 0x6e0]
cmp cl, 1
jne 0x45c706
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x45c6e2
cmp ax, 0x3f
jle 0x45c716
cmp ax, 0x89
je 0x45c716
cmp ax, 0x8a
je 0x45c716
cmp ax, 0xf0
je 0x45c716
cmp ax, 0xf1
je 0x45c716
cmp ax, 0xbe
jl 0x45c706
cmp ax, 0xc2
jle 0x45c716
cmp cl, 6
jne 0x45c716
mov ax, word [esi + 0x6e2]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x38]
push ecx
mov ecx, dword [esi + 0x32c8]
call fcn.0047ae20
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + 0x32c8]
push edx
call fcn.0047ae20
mov edi, dword [esp + 0xfc]
mov dx, word [edi + 0x84e]
mov al, dl
mov dword [esp + 0x30], edx
and al, 2
cmp al, 2
je 0x45c773
mov cx, word [edi + 0x850]
and ecx, 0x400
cmp ecx, 0x400
je 0x45c773
mov dword [esp + 0x10], 0
jmp 0x45c78b
mov eax, dword [edi + 0xa58]
mov ecx, dword [ebx + 0x98]
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x45c78b
mov dword [esp + 0x10], ecx
mov al, dl
and al, 0x40
cmp al, 0x40
je 0x45c7ac
mov cx, word [edi + 0x850]
and ecx, 0x400
cmp ecx, 0x400
jne 0x45c83c
mov cl, byte [edi + 0x6e0]
cmp cl, 1
jne 0x45c7ee
mov ax, word [edi + 0x6e2]
cmp ax, 0x34
jl 0x45c7ca
cmp ax, 0x3f
jle 0x45c81e
cmp ax, 0x89
je 0x45c81e
cmp ax, 0x8a
je 0x45c81e
cmp ax, 0xf0
je 0x45c81e
cmp ax, 0xf1
je 0x45c81e
cmp ax, 0xbe
jl 0x45c7ee
cmp ax, 0xc2
jle 0x45c81e
cmp cl, 6
jne 0x45c83c
mov ax, word [edi + 0x6e2]
cmp ax, 0x54
je 0x45c81e
cmp ax, 0x72
je 0x45c81e
cmp ax, 0x86
je 0x45c81e
cmp ax, 0x9a
je 0x45c81e
cmp ax, 0xae
je 0x45c81e
cmp ax, 0xc2
jne 0x45c83c
mov eax, dword [ebx + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov esi, edx
mov edx, dword [esp + 0x30]
shr esi, 5
jmp 0x45c83e
xor esi, esi
and edx, 0x4000
cmp edx, 0x4000
jne 0x45c85e
mov eax, 0xcccccccd
mul dword [ebx + 0x98]
mov edi, edx
shr edi, 2
jmp 0x45c860
xor edi, edi
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
mov ebp, dword [ebx + 0x98]
push eax
mov ecx, dword [ecx + 0x32c8]
mov dword [esp + 0x44], ebp
call fcn.0047ae20
mov ecx, dword [esp + 0x10]
mov edx, dword [ebx + 0x48]
add edi, esi
add edi, ecx
add edi, ebp
add edi, edx
cmp edi, eax
mov edi, dword [esp + 0xfc]
mov si, word [edi + 0x84e]
mov eax, esi
jbe 0x45cb62
and eax, 2
cmp ax, 2
mov dword [esp + 0x7c], eax
je 0x45c8d1
mov dx, word [edi + 0x850]
and edx, 0x400
cmp edx, 0x400
je 0x45c8d1
mov dword [esp + 0x10], 0
jmp 0x45c8e3
mov eax, dword [edi + 0xa58]
cmp eax, ebp
mov dword [esp + 0x10], eax
jb 0x45c8e3
mov dword [esp + 0x10], ebp
mov eax, esi
and eax, 0x40
cmp ax, 0x40
mov dword [esp + 0x64], eax
je 0x45c909
mov ax, word [edi + 0x850]
and eax, 0x400
cmp eax, 0x400
jne 0x45c995
mov cl, byte [edi + 0x6e0]
cmp cl, 1
jne 0x45c94b
mov ax, word [edi + 0x6e2]
cmp ax, 0x34
jl 0x45c927
cmp ax, 0x3f
jle 0x45c97b
cmp ax, 0x89
je 0x45c97b
cmp ax, 0x8a
je 0x45c97b
cmp ax, 0xf0
je 0x45c97b
cmp ax, 0xf1
je 0x45c97b
cmp ax, 0xbe
jl 0x45c94b
cmp ax, 0xc2
jle 0x45c97b
cmp cl, 6
jne 0x45c995
mov ax, word [edi + 0x6e2]
cmp ax, 0x54
je 0x45c97b
cmp ax, 0x72
je 0x45c97b
cmp ax, 0x86
je 0x45c97b
cmp ax, 0x9a
je 0x45c97b
cmp ax, 0xae
je 0x45c97b
cmp ax, 0xc2
jne 0x45c995
lea eax, [ebp + ebp*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
shr edx, 5
mov dword [esp + 0x98], edx
jmp 0x45c9a0
mov dword [esp + 0x98], 0
and esi, 0x4000
cmp si, 0x4000
jne 0x45c9bd
mov eax, 0xcccccccd
mul ebp
shr edx, 2
mov dword [esp + 0x74], edx
jmp 0x45c9c5
mov dword [esp + 0x74], 0
cmp word [esp + 0x7c], 2
je 0x45c9e6
mov dx, word [edi + 0x850]
and edx, 0x400
cmp edx, 0x400
je 0x45c9e6
xor ebp, ebp
jmp 0x45c9f6
mov eax, dword [edi + 0xa58]
cmp eax, ebp
mov ebp, eax
jb 0x45c9f6
mov ebp, dword [esp + 0x40]
cmp word [esp + 0x64], 0x40
mov edx, dword [esp + 0xfc]
je 0x45ca1c
mov ax, word [edx + 0x850]
and eax, 0x400
cmp eax, 0x400
jne 0x45caa6
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45ca5e
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45ca3a
cmp ax, 0x3f
jle 0x45ca8e
cmp ax, 0x89
je 0x45ca8e
cmp ax, 0x8a
je 0x45ca8e
cmp ax, 0xf0
je 0x45ca8e
cmp ax, 0xf1
je 0x45ca8e
cmp ax, 0xbe
jl 0x45ca5e
cmp ax, 0xc2
jle 0x45ca8e
cmp cl, 6
jne 0x45caa6
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45ca8e
cmp ax, 0x72
je 0x45ca8e
cmp ax, 0x86
je 0x45ca8e
cmp ax, 0x9a
je 0x45ca8e
cmp ax, 0xae
je 0x45ca8e
cmp ax, 0xc2
jne 0x45caa6
mov eax, dword [esp + 0x40]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov edi, edx
shr edi, 5
jmp 0x45caa8
xor edi, edi
cmp si, 0x4000
jne 0x45cabf
mov eax, 0xcccccccd
mul dword [esp + 0x40]
mov esi, edx
shr esi, 2
jmp 0x45cac1
xor esi, esi
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
push edx
mov ecx, dword [eax + 0x32c8]
call fcn.0047ae20
mov edx, dword [esp + 0x74]
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x98]
add eax, edx
mov edx, dword [esp + 0x98]
add eax, edx
mov edx, dword [esp + 0x10]
add eax, edx
mov edx, dword [ebx + 0x48]
add eax, edx
shl ecx, 1
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
shl edx, 1
mov ebx, edx
push eax
sub ebx, ecx
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x32c8]
call fcn.0047ae20
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x100]
mov ecx, eax
mov eax, dword [ebx + 0x98]
mov edx, dword [ebx + 0x48]
add ecx, eax
add ecx, esi
add ecx, edi
add ecx, ebp
add ecx, edx
mov edx, dword [esp + 0x9c]
mov eax, edx
xor edx, edx
div ecx
mov ecx, eax
mov eax, 0xaaaaaaab
mul ecx
mov esi, edx
shr esi, 1
add esi, 0xa
jmp 0x45ce1c
and eax, 2
cmp ax, 2
mov dword [esp + 0x7c], eax
je 0x45cb8e
mov dx, word [edi + 0x850]
and edx, 0x400
cmp edx, 0x400
je 0x45cb8e
mov dword [esp + 0x10], 0
jmp 0x45cba0
mov eax, dword [edi + 0xa58]
cmp eax, ebp
mov dword [esp + 0x10], eax
jb 0x45cba0
mov dword [esp + 0x10], ebp
mov eax, esi
and eax, 0x40
cmp ax, 0x40
mov dword [esp + 0x64], eax
je 0x45cbc6
mov ax, word [edi + 0x850]
and eax, 0x400
cmp eax, 0x400
jne 0x45cc52
mov cl, byte [edi + 0x6e0]
cmp cl, 1
jne 0x45cc08
mov ax, word [edi + 0x6e2]
cmp ax, 0x34
jl 0x45cbe4
cmp ax, 0x3f
jle 0x45cc38
cmp ax, 0x89
je 0x45cc38
cmp ax, 0x8a
je 0x45cc38
cmp ax, 0xf0
je 0x45cc38
cmp ax, 0xf1
je 0x45cc38
cmp ax, 0xbe
jl 0x45cc08
cmp ax, 0xc2
jle 0x45cc38
cmp cl, 6
jne 0x45cc52
mov ax, word [edi + 0x6e2]
cmp ax, 0x54
je 0x45cc38
cmp ax, 0x72
je 0x45cc38
cmp ax, 0x86
je 0x45cc38
cmp ax, 0x9a
je 0x45cc38
cmp ax, 0xae
je 0x45cc38
cmp ax, 0xc2
jne 0x45cc52
lea eax, [ebp + ebp*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
shr edx, 5
mov dword [esp + 0x98], edx
jmp 0x45cc5d
mov dword [esp + 0x98], 0
and esi, 0x4000
cmp si, 0x4000
jne 0x45cc7a
mov eax, 0xcccccccd
mul ebp
shr edx, 2
mov dword [esp + 0x74], edx
jmp 0x45cc82
mov dword [esp + 0x74], 0
cmp word [esp + 0x7c], 2
je 0x45cca3
mov dx, word [edi + 0x850]
and edx, 0x400
cmp edx, 0x400
je 0x45cca3
xor ebp, ebp
jmp 0x45ccb3
mov eax, dword [edi + 0xa58]
cmp eax, ebp
mov ebp, eax
jb 0x45ccb3
mov ebp, dword [esp + 0x40]
cmp word [esp + 0x64], 0x40
mov edx, dword [esp + 0xfc]
je 0x45ccd9
mov ax, word [edx + 0x850]
and eax, 0x400
cmp eax, 0x400
jne 0x45cd63
mov cl, byte [edx + 0x6e0]
cmp cl, 1
jne 0x45cd1b
mov ax, word [edx + 0x6e2]
cmp ax, 0x34
jl 0x45ccf7
cmp ax, 0x3f
jle 0x45cd4b
cmp ax, 0x89
je 0x45cd4b
cmp ax, 0x8a
je 0x45cd4b
cmp ax, 0xf0
je 0x45cd4b
cmp ax, 0xf1
je 0x45cd4b
cmp ax, 0xbe
jl 0x45cd1b
cmp ax, 0xc2
jle 0x45cd4b
cmp cl, 6
jne 0x45cd63
mov ax, word [edx + 0x6e2]
cmp ax, 0x54
je 0x45cd4b
cmp ax, 0x72
je 0x45cd4b
cmp ax, 0x86
je 0x45cd4b
cmp ax, 0x9a
je 0x45cd4b
cmp ax, 0xae
je 0x45cd4b
cmp ax, 0xc2
jne 0x45cd63
mov eax, dword [esp + 0x40]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov edi, edx
shr edi, 5
jmp 0x45cd65
xor edi, edi
cmp si, 0x4000
jne 0x45cd7c
mov eax, 0xcccccccd
mul dword [esp + 0x40]
mov esi, edx
shr esi, 2
jmp 0x45cd7e
xor esi, esi
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
push edx
mov ecx, dword [eax + 0x32c8]
call fcn.0047ae20
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x74]
shl ecx, 1
mov edx, ecx
mov ecx, dword [esp + 0x98]
add eax, ecx
mov ecx, dword [ebx + 0x98]
add eax, ecx
mov ecx, dword [esp + 0x10]
add eax, ecx
mov ecx, dword [ebx + 0x48]
add eax, ecx
mov ecx, dword [esp + 0x24]
push ecx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 1
sub edx, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xa0], edx
mov ecx, dword [eax + 0x32c8]
call fcn.0047ae20
mov ebx, dword [esp + 0x100]
mov ecx, eax
add ecx, esi
mov esi, dword [ebx + 0x98]
mov edx, dword [ebx + 0x48]
add ecx, edi
add ecx, ebp
add ecx, esi
mov esi, 0xa
add ecx, edx
mov edx, dword [esp + 0x9c]
mov eax, edx
xor edx, edx
div ecx
mov ecx, eax
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
sub esi, edx
mov edi, dword [esp + 0x44]
test esi, esi
jge 0x45ce28
xor esi, esi
jmp 0x45ce32
cmp esi, 0x64
jle 0x45ce32
mov esi, 0x64
call dword [sym.imp.MSVCRT.dll_rand]
cdq
mov ecx, 0x64
idiv ecx
cmp edx, esi
jge 0x45ce4d
mov edx, dword [esp + 0x5c]
lea eax, [edx + edx]
jmp 0x45ce51
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x2c]
push eax
lea eax, [esp + 0x58]
push edx
mov edx, dword [esp + 0x118]
push eax
mov eax, dword [esp + 0x10c]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
push ebx
push eax
call fcn.0045f890
mov ebp, dword [esp + 0x100]
mov ebx, dword [esp + 0x38]
jmp 0x45d453
mov esi, dword [esp + 0xfc]
mov dx, word [esi + 0x84e]
mov cl, dl
mov dword [esp + 0x30], edx
and cl, 2
cmp cl, 2
je 0x45cecc
mov ax, word [esi + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x45cecc
mov dword [esp + 0x10], 0
jmp 0x45cee4
mov eax, dword [esi + 0xa58]
mov ecx, dword [ebp + 0x98]
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x45cee4
mov dword [esp + 0x10], ecx
and dl, 0x40
cmp dl, 0x40
je 0x45cf05
mov cx, word [esi + 0x850]
and ecx, 0x400
cmp ecx, 0x400
jne 0x45cf91
mov cl, byte [esi + 0x6e0]
cmp cl, 1
jne 0x45cf47
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x45cf23
cmp ax, 0x3f
jle 0x45cf77
cmp ax, 0x89
je 0x45cf77
cmp ax, 0x8a
je 0x45cf77
cmp ax, 0xf0
je 0x45cf77
cmp ax, 0xf1
je 0x45cf77
cmp ax, 0xbe
jl 0x45cf47
cmp ax, 0xc2
jle 0x45cf77
cmp cl, 6
jne 0x45cf91
mov ax, word [esi + 0x6e2]
cmp ax, 0x54
je 0x45cf77
cmp ax, 0x72
je 0x45cf77
cmp ax, 0x86
je 0x45cf77
cmp ax, 0x9a
je 0x45cf77
cmp ax, 0xae
je 0x45cf77
cmp ax, 0xc2
jne 0x45cf91
mov eax, dword [ebp + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov esi, edx
shr esi, 5
jmp 0x45cf93
xor esi, esi
mov eax, dword [esp + 0x30]
and eax, 0x4000
cmp eax, 0x4000
jne 0x45cfb5
mov eax, 0xcccccccd
mul dword [ebp + 0x98]
mov edi, edx
shr edi, 2
jmp 0x45cfb7
xor edi, edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x24]
push 0x31
push eax
push ecx
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae20
mov edx, dword [ebp + 0x48]
push eax
mov eax, dword [ebp + 0x98]
mov ecx, ebx
add eax, edx
mov edx, dword [esp + 0x20]
add eax, edi
add eax, esi
add eax, edx
push eax
call fcn.0045fab0
mov edi, eax
cmp edi, 1
jne 0x45d453
mov ecx, dword [esp + 0xf8]
mov edx, dword [ebp + 0x2c]
push ecx
mov ecx, dword [ebp + 0x18]
add edx, ecx
mov eax, 0xcccccccd
mul edx
mov ecx, dword [ebp + 0x30]
shr edx, 3
lea eax, [edx + edx*8]
lea edx, [ecx + eax*2]
mov eax, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x58]
push eax
mov eax, dword [esp + 0x118]
push ecx
mov ecx, dword [esp + 0x10c]
push edx
push eax
push ebp
jmp 0x45d44b
cmp eax, 0x43
je 0x45d263
cmp eax, 0x15f
je 0x45d0ce
call dword [sym.imp.rm3944.dll_NewCheckForAreaAttack]
nop
nop
push eax
mov eax, dword [esp + 0x108]
push edx
push eax
push ecx
mov ecx, dword [ebx + 0x32c8]
call fcn.0047ae60
mov edx, dword [ebp + 0x94]
mov esi, dword [ebp + 0x44]
add edx, esi
push eax
push edx
mov ecx, ebx
call fcn.0045fab0
mov edi, eax
cmp edi, 1
jne 0x45d453
mov ecx, dword [ebp + 0x34]
mov edx, dword [esp + 0x110]
mov eax, dword [esp + 0xf8]
add ecx, edx
mov edx, dword [esp + 0x24]
push eax
push ecx
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x58]
push edx
mov edx, dword [esp + 0x118]
push eax
mov eax, dword [esp + 0x10c]
push ecx
push edx
push ebp
push eax
jmp 0x45d44c
mov esi, dword [esp + 0xfc]
mov dx, word [esi + 0x84e]
mov cl, dl
mov dword [esp + 0x30], edx
and cl, 2
cmp cl, 2
je 0x45d107
mov ax, word [esi + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x45d107
mov dword [esp + 0x10], 0
jmp 0x45d11f
mov eax, dword [esi + 0xa58]
mov ecx, dword [ebp + 0x98]
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x45d11f
mov dword [esp + 0x10], ecx
and dl, 0x40
cmp dl, 0x40
je 0x45d140
mov cx, word [esi + 0x850]
and ecx, 0x400
cmp ecx, 0x400
jne 0x45d1cc
mov cl, byte [esi + 0x6e0]
cmp cl, 1
jne 0x45d182
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x45d15e
cmp ax, 0x3f
jle 0x45d1b2
cmp ax, 0x89
je 0x45d1b2
cmp ax, 0x8a
je 0x45d1b2
cmp ax, 0xf0
je 0x45d1b2
cmp ax, 0xf1
je 0x45d1b2
cmp ax, 0xbe
jl 0x45d182
cmp ax, 0xc2
jle 0x45d1b2
cmp cl, 6
jne 0x45d1cc
mov ax, word [esi + 0x6e2]
cmp ax, 0x54
je 0x45d1b2
cmp ax, 0x72
je 0x45d1b2
cmp ax, 0x86
je 0x45d1b2
cmp ax, 0x9a
je 0x45d1b2
cmp ax, 0xae
je 0x45d1b2
cmp ax, 0xc2
jne 0x45d1cc
mov eax, dword [ebp + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov esi, edx
shr esi, 5
jmp 0x45d1ce
xor esi, esi
mov eax, dword [esp + 0x30]
and eax, 0x4000
cmp eax, 0x4000
jne 0x45d1f0
mov eax, 0xcccccccd
mul dword [ebp + 0x98]
mov edi, edx
shr edi, 2
jmp 0x45d1f2
xor edi, edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x24]
push 0x15f
push eax
push ecx
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae20
mov edx, dword [ebp + 0x48]
push eax
mov eax, dword [ebp + 0x98]
mov ecx, ebx
add eax, edx
mov edx, dword [esp + 0x20]
add eax, edi
add eax, esi
add eax, edx
push eax
call fcn.0045fab0
mov edi, eax
cmp edi, 1
jne 0x45d453
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x18]
lea eax, [ecx + edx]
mov ecx, dword [esp + 0xf8]
mov edx, eax
push ecx
shr edx, 2
lea eax, [eax + eax*2]
add edx, eax
mov eax, dword [ebp + 0x30]
add edx, eax
push edx
jmp 0x45d3e7
mov esi, dword [esp + 0xfc]
mov dx, word [esi + 0x84e]
mov al, dl
mov dword [esp + 0x30], edx
and al, 2
cmp al, 2
je 0x45d29c
mov cx, word [esi + 0x850]
and ecx, 0x400
cmp ecx, 0x400
je 0x45d29c
mov dword [esp + 0x10], 0
jmp 0x45d2b4
mov eax, dword [esi + 0xa58]
mov ecx, dword [ebp + 0x98]
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x45d2b4
mov dword [esp + 0x10], ecx
and dl, 0x40
cmp dl, 0x40
je 0x45d2d5
mov dx, word [esi + 0x850]
and edx, 0x400
cmp edx, 0x400
jne 0x45d361
mov cl, byte [esi + 0x6e0]
cmp cl, 1
jne 0x45d317
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x45d2f3
cmp ax, 0x3f
jle 0x45d347
cmp ax, 0x89
je 0x45d347
cmp ax, 0x8a
je 0x45d347
cmp ax, 0xf0
je 0x45d347
cmp ax, 0xf1
je 0x45d347
cmp ax, 0xbe
jl 0x45d317
cmp ax, 0xc2
jle 0x45d347
cmp cl, 6
jne 0x45d361
mov ax, word [esi + 0x6e2]
cmp ax, 0x54
je 0x45d347
cmp ax, 0x72
je 0x45d347
cmp ax, 0x86
je 0x45d347
cmp ax, 0x9a
je 0x45d347
cmp ax, 0xae
je 0x45d347
cmp ax, 0xc2
jne 0x45d361
mov eax, dword [ebp + 0x98]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
mul ecx
mov esi, edx
shr esi, 5
jmp 0x45d363
xor esi, esi
mov eax, dword [esp + 0x30]
and eax, 0x4000
cmp eax, 0x4000
jne 0x45d385
mov eax, 0xcccccccd
mul dword [ebp + 0x98]
mov edi, edx
shr edi, 2
jmp 0x45d387
xor edi, edi
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x24]
push 0x43
push edx
push eax
push ecx
mov ecx, dword [ebx + 0x32c8]
call fcn.0047ae20
mov edx, dword [ebp + 0x98]
push eax
mov eax, dword [ebp + 0x48]
lea ecx, [eax + edx*4]
add ecx, edi
add ecx, esi
mov esi, dword [esp + 0x20]
add ecx, esi
push ecx
mov ecx, ebx
call fcn.0045fab0
mov edi, eax
cmp edi, 1
jne 0x45d453
mov edx, dword [esp + 0xf8]
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x30]
push edx
add eax, dword [ebp + 0x18]
lea eax, [eax + eax*2]
add eax, ecx
push eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
lea edx, [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x118]
push edx
mov edx, dword [esp + 0x10c]
push eax
push ecx
push ebp
push edx
jmp 0x45d44c
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0xf8]
push edx
mov edi, 1
mov eax, dword [ecx + 0x20]
mov edx, eax
imul edx, eax
mov eax, 0xaaaaaaab
mul edx
mov eax, dword [esp + 0x28]
shr edx, 2
add edx, 0x32
push edx
lea edx, [esp + 0x58]
push eax
mov eax, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x11c]
push eax
push edx
push ebp
push ecx
mov ecx, ebx
call fcn.0045f890
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10c]
push edi
push eax
mov eax, dword [esp + 0x10c]
push ecx
push edx
push ebp
push eax
mov ecx, ebx
call fcn.0045f840
jmp case.0x45b98f.7
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x2d8], 1
jne 0x45d5c2
mov edx, ecx
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae60
cmp eax, 0x1b58
jae 0x45d4b3
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push eax
call fcn.0047ae60
jmp 0x45d4b8
mov eax, 0x1b58
lea ecx, [eax + eax*2]
mov eax, 0x5d9f7391
mul ecx
shr edx, 7
add edx, 0x14
cmp edx, 0x50
jbe 0x45d4d7
mov esi, 0x50
jmp 0x45d561
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae60
cmp eax, 0x1b58
jae 0x45d500
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push eax
call fcn.0047ae60
jmp 0x45d505
mov eax, 0x1b58
lea ecx, [eax + eax*2]
mov eax, 0x5d9f7391
mul ecx
shr edx, 7
add edx, 0x14
cmp edx, 0x14
jae 0x45d521
mov esi, 0x14
jmp 0x45d561
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae60
cmp eax, 0x1b58
jae 0x45d54a
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push eax
call fcn.0047ae60
jmp 0x45d54f
mov eax, 0x1b58
lea ecx, [eax + eax*2]
mov eax, 0x5d9f7391
mul ecx
mov esi, edx
shr esi, 7
add esi, 0x14
call dword [sym.imp.MSVCRT.dll_rand]
cdq
mov ecx, 0x64
idiv ecx
cmp edx, esi
jae 0x45d5c2
mov edx, dword [ebp + 0x94]
mov eax, dword [ebp + 0x44]
add edx, eax
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0xf8]
push 0
shr edx, 4
mov ecx, dword [eax + 0x38]
push 0
add edx, ecx
mov ecx, dword [esp + 0x114]
push 0
push edx
push 0xc
call fcn.0042b2d0
cmp eax, 1
jne case.0x45b98f.7
mov eax, dword [esp + 0x104]
or byte [eax + 0x1b], 0x10
jmp case.0x45b98f.7
movsx ecx, word [esp + 0x114]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x104]
push ecx
mov ecx, dword [esp + 0x28]
push edx
push eax
push ecx
mov ecx, dword [ebx + 0x32c8]
call fcn.0047ae60
mov edx, dword [ebp + 0x44]
mov esi, dword [ebp + 0x94]
add edx, esi
push eax
push edx
mov ecx, ebx
call fcn.0045fab0
mov edi, eax
cmp edi, 1
jne case.0x45b98f.7
mov ecx, dword [ebp + 0x44]
mov edx, dword [ebp + 0x94]
add ecx, edx
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x24]
shr edx, 4
mov esi, dword [eax + 0x38]
mov eax, dword [esp + 0x28]
push 0
add edx, esi
push 0
push edx
lea edx, [esp + 0x5c]
push ecx
push edx
push eax
push 0xc
jmp 0x45e030
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x2d8], 1
jne 0x45d78a
mov edx, ecx
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae60
cmp eax, 0x1b58
jae 0x45d67b
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push eax
call fcn.0047ae60
jmp 0x45d680
mov eax, 0x1b58
lea ecx, [eax + eax*2]
mov eax, 0x5d9f7391
mul ecx
shr edx, 7
add edx, 0x14
cmp edx, 0x50
jbe 0x45d69f
mov esi, 0x50
jmp 0x45d729
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae60
cmp eax, 0x1b58
jae 0x45d6c8
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push eax
call fcn.0047ae60
jmp 0x45d6cd
mov eax, 0x1b58
lea ecx, [eax + eax*2]
mov eax, 0x5d9f7391
mul ecx
shr edx, 7
add edx, 0x14
cmp edx, 0x14
jae 0x45d6e9
mov esi, 0x14
jmp 0x45d729
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae60
cmp eax, 0x1b58
jae 0x45d712
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push eax
call fcn.0047ae60
jmp 0x45d717
mov eax, 0x1b58
lea ecx, [eax + eax*2]
mov eax, 0x5d9f7391
mul ecx
mov esi, edx
shr esi, 7
add esi, 0x14
call dword [sym.imp.MSVCRT.dll_rand]
cdq
mov ecx, 0x64
idiv ecx
cmp edx, esi
jae 0x45d78a
mov edx, dword [ebp + 0x94]
mov eax, dword [ebp + 0x44]
add edx, eax
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0xf8]
push 0
shr edx, 3
mov ecx, dword [eax + 0x38]
push 0
add edx, ecx
mov ecx, dword [esp + 0x114]
push 0
push edx
push 0xd
call fcn.0042b2d0
cmp eax, 1
jne case.0x45b98f.7
mov eax, dword [esp + 0x104]
or byte [eax + 0x1b], 0x20
jmp case.0x45b98f.7
mov esi, dword [esp + 0xfc]
mov dx, word [esi + 0x84e]
mov cl, dl
mov dword [esp + 0x30], edx
and cl, 2
cmp cl, 2
je 0x45d7c3
mov ax, word [esi + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x45d7c3
mov dword [esp + 0x10], 0
jmp 0x45d7db
mov eax, dword [esi + 0xa58]
mov ecx, dword [ebp + 0x98]
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x45d7db
mov dword [esp + 0x10], ecx
and dl, 0x40
cmp dl, 0x40
je 0x45d7fc
mov cx, word [esi + 0x850]
and ecx, 0x400
cmp ecx, 0x400
jne 0x45d888
mov cl, byte [esi + 0x6e0]
cmp cl, 1
jne 0x45d83e
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x45d81a
cmp ax, 0x3f
jle 0x45d86e
cmp ax, 0x89
je 0x45d86e
cmp ax, 0x8a
je 0x45d86e
cmp ax, 0xf0
je 0x45d86e
cmp ax, 0xf1
je 0x45d86e
cmp ax, 0xbe
jl 0x45d83e
cmp ax, 0xc2
jle 0x45d86e
cmp cl, 6
jne 0x45d888
mov ax, word [esi + 0x6e2]
cmp ax, 0x54
je 0x45d86e
cmp ax, 0x72
je 0x45d86e
cmp ax, 0x86
je 0x45d86e
cmp ax, 0x9a
je 0x45d86e
cmp ax, 0xae
je 0x45d86e
cmp ax, 0xc2
jne 0x45d888
mov eax, dword [ebp + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov esi, edx
shr esi, 5
jmp 0x45d88a
xor esi, esi
mov eax, dword [esp + 0x30]
and eax, 0x4000
cmp eax, 0x4000
jne 0x45d8ac
mov eax, 0xcccccccd
mul dword [ebp + 0x98]
mov edi, edx
shr edi, 2
jmp 0x45d8ae
xor edi, edi
movsx eax, word [esp + 0x114]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x104]
push eax
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [ebx + 0x32c8]
push edx
push eax
call fcn.0047ae20
mov ecx, dword [ebp + 0x98]
mov edx, dword [ebp + 0x48]
add ecx, edx
push eax
add ecx, edi
add ecx, esi
mov esi, dword [esp + 0x20]
add ecx, esi
push ecx
mov ecx, ebx
call fcn.0045fab0
mov edi, eax
cmp edi, 1
jne case.0x45b98f.7
mov edx, dword [ebp + 0x94]
mov ecx, dword [ebp + 0x44]
add edx, ecx
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x24]
shr edx, 3
mov esi, dword [eax + 0x38]
mov eax, dword [esp + 0x28]
push 0
add edx, esi
push 0
push edx
lea edx, [esp + 0x5c]
push ecx
push edx
push eax
push 0xd
jmp 0x45e030
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x2d8], 1
jne 0x45da80
mov edx, ecx
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae60
cmp eax, 0x1b58
jae 0x45d971
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push eax
call fcn.0047ae60
jmp 0x45d976
mov eax, 0x1b58
lea ecx, [eax + eax*2]
mov eax, 0x5d9f7391
mul ecx
shr edx, 7
add edx, 0x14
cmp edx, 0x50
jbe 0x45d995
mov esi, 0x50
jmp 0x45da1f
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae60
cmp eax, 0x1b58
jae 0x45d9be
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push eax
call fcn.0047ae60
jmp 0x45d9c3
mov eax, 0x1b58
lea ecx, [eax + eax*2]
mov eax, 0x5d9f7391
mul ecx
shr edx, 7
add edx, 0x14
cmp edx, 0x14
jae 0x45d9df
mov esi, 0x14
jmp 0x45da1f
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae60
cmp eax, 0x1b58
jae 0x45da08
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push eax
call fcn.0047ae60
jmp 0x45da0d
mov eax, 0x1b58
lea ecx, [eax + eax*2]
mov eax, 0x5d9f7391
mul ecx
mov esi, edx
shr esi, 7
add esi, 0x14
call dword [sym.imp.MSVCRT.dll_rand]
cdq
mov ecx, 0x64
idiv ecx
cmp edx, esi
jae 0x45da80
mov edx, dword [ebp + 0x94]
mov eax, dword [ebp + 0x44]
add edx, eax
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0xf8]
push 0
shr edx, 4
mov ecx, dword [eax + 0x38]
push 0
add edx, ecx
mov ecx, dword [esp + 0x114]
push 0
push edx
push 0x10
call fcn.0042b2d0
cmp eax, 1
jne case.0x45b98f.7
mov eax, dword [esp + 0x104]
or byte [eax + 0x1c], 1
jmp case.0x45b98f.7
movsx ecx, word [esp + 0x114]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x104]
push ecx
mov ecx, dword [esp + 0x28]
push edx
push eax
push ecx
mov ecx, dword [ebx + 0x32c8]
call fcn.0047ae60
mov edx, dword [ebp + 0x44]
mov esi, dword [ebp + 0x94]
add edx, esi
push eax
push edx
mov ecx, ebx
call fcn.0045fab0
mov edi, eax
cmp edi, 1
jne case.0x45b98f.7
mov ecx, dword [ebp + 0x44]
mov edx, dword [ebp + 0x94]
add ecx, edx
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x24]
shr edx, 4
mov esi, dword [eax + 0x38]
mov eax, dword [esp + 0x28]
push 0
add edx, esi
push 0
push edx
lea edx, [esp + 0x5c]
push ecx
push edx
push eax
push 0x10
jmp 0x45e030
movsx ecx, word [esp + 0x114]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x104]
push ecx
mov ecx, dword [esp + 0x28]
push edx
push eax
push ecx
mov ecx, dword [ebx + 0x32c8]
call fcn.0047ae60
mov edx, dword [ebp + 0x94]
mov esi, dword [ebp + 0x44]
add edx, esi
push eax
push edx
mov ecx, ebx
call fcn.0045fab0
mov edi, eax
cmp edi, 1
jne case.0x45b98f.7
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
lea ecx, [esp + 0x50]
push eax
push ecx
mov ecx, dword [ebx + 0x32c8]
push esi
call fcn.0047bde0
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
lea eax, [esp + 0x50]
push edx
push eax
push esi
call fcn.0047bca0
jmp case.0x45b98f.7
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x2d8], 1
jne 0x45dcc2
mov edx, ecx
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae60
cmp eax, 0x1b58
jae 0x45dbb3
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push eax
call fcn.0047ae60
jmp 0x45dbb8
mov eax, 0x1b58
lea ecx, [eax + eax*2]
mov eax, 0x5d9f7391
mul ecx
shr edx, 7
add edx, 0x14
cmp edx, 0x50
jbe 0x45dbd7
mov esi, 0x50
jmp 0x45dc61
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae60
cmp eax, 0x1b58
jae 0x45dc00
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push eax
call fcn.0047ae60
jmp 0x45dc05
mov eax, 0x1b58
lea ecx, [eax + eax*2]
mov eax, 0x5d9f7391
mul ecx
shr edx, 7
add edx, 0x14
cmp edx, 0x14
jae 0x45dc21
mov esi, 0x14
jmp 0x45dc61
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae60
cmp eax, 0x1b58
jae 0x45dc4a
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push eax
call fcn.0047ae60
jmp 0x45dc4f
mov eax, 0x1b58
lea ecx, [eax + eax*2]
mov eax, 0x5d9f7391
mul ecx
mov esi, edx
shr esi, 7
add esi, 0x14
call dword [sym.imp.MSVCRT.dll_rand]
cdq
mov ecx, 0x64
idiv ecx
cmp edx, esi
jae 0x45dcc2
mov edx, dword [ebp + 0x94]
mov eax, dword [ebp + 0x44]
add edx, eax
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0xf8]
push 0
shr edx, 4
mov ecx, dword [eax + 0x38]
push 0
add edx, ecx
mov ecx, dword [esp + 0x114]
push 0
push edx
push 0x37
call fcn.0042b2d0
cmp eax, 1
jne case.0x45b98f.7
mov eax, dword [esp + 0x104]
or byte [eax + 0x20], 0x80
jmp case.0x45b98f.7
mov esi, dword [esp + 0xfc]
mov dx, word [esi + 0x84e]
mov cl, dl
mov dword [esp + 0x30], edx
and cl, 2
cmp cl, 2
je 0x45dcfb
mov ax, word [esi + 0x850]
and eax, 0x400
cmp eax, 0x400
je 0x45dcfb
mov dword [esp + 0x10], 0
jmp 0x45dd13
mov eax, dword [esi + 0xa58]
mov ecx, dword [ebp + 0x98]
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x45dd13
mov dword [esp + 0x10], ecx
and dl, 0x40
cmp dl, 0x40
je 0x45dd34
mov cx, word [esi + 0x850]
and ecx, 0x400
cmp ecx, 0x400
jne 0x45ddc0
mov cl, byte [esi + 0x6e0]
cmp cl, 1
jne 0x45dd76
mov ax, word [esi + 0x6e2]
cmp ax, 0x34
jl 0x45dd52
cmp ax, 0x3f
jle 0x45dda6
cmp ax, 0x89
je 0x45dda6
cmp ax, 0x8a
je 0x45dda6
cmp ax, 0xf0
je 0x45dda6
cmp ax, 0xf1
je 0x45dda6
cmp ax, 0xbe
jl 0x45dd76
cmp ax, 0xc2
jle 0x45dda6
cmp cl, 6
jne 0x45ddc0
mov ax, word [esi + 0x6e2]
cmp ax, 0x54
je 0x45dda6
cmp ax, 0x72
je 0x45dda6
cmp ax, 0x86
je 0x45dda6
cmp ax, 0x9a
je 0x45dda6
cmp ax, 0xae
je 0x45dda6
cmp ax, 0xc2
jne 0x45ddc0
mov eax, dword [ebp + 0x98]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
mul edx
mov esi, edx
shr esi, 5
jmp 0x45ddc2
xor esi, esi
mov eax, dword [esp + 0x30]
and eax, 0x4000
cmp eax, 0x4000
jne 0x45dde4
mov eax, 0xcccccccd
mul dword [ebp + 0x98]
mov edi, edx
shr edi, 2
jmp 0x45dde6
xor edi, edi
movsx eax, word [esp + 0x114]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x104]
push eax
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [ebx + 0x32c8]
push edx
push eax
call fcn.0047ae20
mov ecx, dword [ebp + 0x98]
mov edx, dword [ebp + 0x48]
add ecx, edx
push eax
add ecx, edi
add ecx, esi
mov esi, dword [esp + 0x20]
add ecx, esi
push ecx
mov ecx, ebx
call fcn.0045fab0
mov edi, eax
cmp edi, 1
jne case.0x45b98f.7
mov edx, dword [ebp + 0x94]
mov ecx, dword [ebp + 0x44]
add edx, ecx
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x24]
shr edx, 4
mov esi, dword [eax + 0x38]
mov eax, dword [esp + 0x28]
push 0
add edx, esi
push 0
push edx
lea edx, [esp + 0x5c]
push ecx
push edx
push eax
push 0x37
jmp 0x45e030
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x2d8], 1
jne 0x45dfb8
mov edx, ecx
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae60
cmp eax, 0x1b58
jae 0x45dea9
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push eax
call fcn.0047ae60
jmp 0x45deae
mov eax, 0x1b58
lea ecx, [eax + eax*2]
mov eax, 0x5d9f7391
mul ecx
shr edx, 7
add edx, 0x14
cmp edx, 0x50
jbe 0x45decd
mov esi, 0x50
jmp 0x45df57
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae60
cmp eax, 0x1b58
jae 0x45def6
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push eax
call fcn.0047ae60
jmp 0x45defb
mov eax, 0x1b58
lea ecx, [eax + eax*2]
mov eax, 0x5d9f7391
mul ecx
shr edx, 7
add edx, 0x14
cmp edx, 0x14
jae 0x45df17
mov esi, 0x14
jmp 0x45df57
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.0047ae60
cmp eax, 0x1b58
jae 0x45df40
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x32c8]
push eax
call fcn.0047ae60
jmp 0x45df45
mov eax, 0x1b58
lea ecx, [eax + eax*2]
mov eax, 0x5d9f7391
mul ecx
mov esi, edx
shr esi, 7
add esi, 0x14
call dword [sym.imp.MSVCRT.dll_rand]
cdq
mov ecx, 0x64
idiv ecx
cmp edx, esi
jae 0x45dfb8
mov edx, dword [ebp + 0x94]
mov eax, dword [ebp + 0x44]
add edx, eax
mov eax, 0x51eb851f
mul edx
mov eax, dword [esp + 0xf8]
push 0
shr edx, 4
mov ecx, dword [eax + 0x38]
push 0
add edx, ecx
mov ecx, dword [esp + 0x114]
push 0
push edx
push 0x2b
call fcn.0042b2d0
cmp eax, 1
jne case.0x45b98f.7
mov eax, dword [esp + 0x104]
or byte [eax + 0x1f], 8
jmp case.0x45b98f.7
movsx ecx, word [esp + 0x114]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x104]
push ecx
mov ecx, dword [esp + 0x28]
push edx
push eax
push ecx
mov ecx, dword [ebx + 0x32c8]
call fcn.0047ae60
mov edx, dword [ebp + 0x44]
mov esi, dword [ebp + 0x94]
add edx, esi
push eax
push edx
mov ecx, ebx
call fcn.0045fab0
mov edi, eax
cmp edi, 1
jne case.0x45b98f.7
mov ecx, dword [ebp + 0x44]
mov edx, dword [ebp + 0x94]
add ecx, edx
mov eax, 0x51eb851f
mul ecx
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x24]
shr edx, 4
mov esi, dword [eax + 0x38]
mov eax, dword [esp + 0x28]
push 0
add edx, esi
push 0
push edx
lea edx, [esp + 0x5c]
push ecx
push edx
push eax
push 0x2b
mov ecx, dword [ebx + 0x32c8]
call fcn.00479630
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
add ecx, 0x2f
mov eax, dword [edx + 0x16c]
mov dword [esp + 0x78], ecx
test eax, eax
jne 0x45e11e
mov eax, dword [edx + 0x11c]
cmp byte [eax], 0x4e
jne 0x45e11e
mov ecx, dword [eax + 0x54]
test ecx, ecx
je 0x45e11e
push 0
push 0
push ecx
mov cx, word [eax + 0x14]
lea eax, [esp + 0x5c]
push ecx
push eax
push edx
mov edx, dword [esp + 0x40]
lea ecx, [esp + 0x68]
push ecx
mov ecx, dword [ebx + 0x32c8]
push edx
call fcn.004813c0
mov eax, dword [ebx + 0x32c8]
mov eax, dword [eax + 0x9c]
cmp eax, 1
mov esi, eax
jg 0x45e0af
mov esi, 1
mov ecx, dword [esp + 0x24]
xor eax, eax
mov edx, dword [ecx + 0x11c]
mov ax, word [edx + 0x18]
cdq
idiv esi
mov dword [ecx + 0x104], eax
mov eax, dword [ebx + 0x32c8]
mov eax, dword [eax + 0x9c]
cmp eax, 1
mov esi, eax
jg 0x45e0e0
mov esi, 1
mov ecx, dword [esp + 0x24]
xor eax, eax
mov edx, dword [ecx + 0x11c]
mov ax, word [edx + 0x18]
cdq
idiv esi
test edx, edx
jle 0x45e108
mov eax, dword [ecx + 0x104]
inc eax
mov dword [ecx + 0x104], eax
mov ecx, dword [esp + 0x24]
xor eax, eax
mov dword [ecx + 0x118], eax
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x2a0], eax
mov edx, dword [esp + 0x24]
test edi, edi
je 0x45e203
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x45e13d
cmp eax, dword [edx + 0x120]
je 0x45e203
cmp dword [edx + 0x16c], 1
jne 0x45e169
mov edx, dword [esp + 0x118]
mov eax, dword [esp + 0x78]
xor ecx, ecx
mov byte [eax + edx - 1], 0xff
mov edx, dword [esp + 0x28]
add edx, 0x1a
mov dword [edx], ecx
mov dword [edx + 4], ecx
jmp 0x45e213
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x120]
mov esi, dword [eax + 0x2bc]
cmp ecx, esi
jb 0x45e192
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x78]
mov byte [ecx + eax - 1], 0x64
jmp 0x45e213
cmp ecx, 0x1312d00
jbe 0x45e1c6
mov eax, 0x51eb851f
mul esi
mov esi, edx
mov eax, ecx
shr esi, 5
xor edx, edx
div esi
cmp al, 0x64
jae 0x45e1ed
mov edx, dword [esp + 0x118]
mov ecx, dword [esp + 0x78]
and eax, 0xff
mov byte [ecx + edx - 1], al
jmp 0x45e213
lea eax, [ecx + ecx*4]
xor edx, edx
lea eax, [eax + eax*4]
shl eax, 2
div esi
cmp al, 0x64
jae 0x45e1ed
mov edx, dword [esp + 0x118]
mov ecx, dword [esp + 0x78]
and eax, 0xff
mov byte [ecx + edx - 1], al
jmp 0x45e213
mov edx, dword [esp + 0x118]
mov ecx, dword [esp + 0x78]
mov eax, 0x64
mov byte [ecx + edx - 1], al
jmp 0x45e213
mov edx, dword [esp + 0x118]
mov eax, dword [esp + 0x78]
mov byte [eax + edx - 1], 0xfe
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x78]
add ecx, 0x2f
cmp eax, 0x582
mov dword [esp + 0x28], ecx
jb 0x45e266
mov esi, dword [esp + 0x118]
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x108]
mov eax, dword [esp + 0x104]
push 0x582
push esi
push ecx
push edx
push eax
mov ecx, ebx
call fcn.0045f9b0
xor eax, eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x78], eax
mov dword [esp + 0xac], eax
mov eax, dword [ebx + 0x32c8]
mov esi, dword [esp + 0x108]
lea ecx, [eax + 0x40]
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x54]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x94]
push eax
lea eax, [esp + 0xc0]
push esi
push eax
call dword [edx + 0x48]
test eax, eax
jne 0x45b8e0
mov eax, dword [esp + 0xac]
test eax, eax
jne 0x45e2c6
mov eax, dword [esp + 0x78]
test eax, eax
jne 0x45e2c6
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xe4
ret 0x30
mov eax, dword [esp + 0x78]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe4
ret 0x30