Function at 0x434a30
Capabilities:
Check for software breakpoints
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x2d44
call fcn.00481410
mov eax, dword [0x4bacc0]
xor eax, esp
mov dword [esp + 0x2d40], eax
cmp dword [0x4bd458], 0
mov eax, dword [esp + 0x2d50]
mov ecx, dword [esp + 0x2d54]
mov edx, dword [esp + 0x2d58]
push ebx
push ebp
mov ebp, dword [esp + 0x2d54]
push esi
push edi
mov edi, dword [esp + 0x2d6c]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], edi
je 0x434a95
call fcn.00452bc0
mov dword [esp + 0x40], eax
cmp dword [0x4bd450], 0
mov ebx, dword [esp + 0x2d58]
jne 0x434b75
mov esi, 0x17
mov eax, dword [esp + 0x10]
cmp dword [0x4bd458], 0
je 0x434b58
add eax, 0x23c
push eax
push edi
call fcn.00452c70
mov edx, dword [esp + 0x38]
add esp, 4
push eax
push edx
call fcn.00452c60
add esp, 4
push eax
mov eax, dword [esp + 0x44]
push eax
call fcn.00452c60
mov ecx, dword [esp + 0x4c]
add esp, 4
push eax
push ecx
call fcn.00452c60
mov edx, dword [esp + 0x48]
add esp, 4
push eax
push edx
call fcn.00452c60
mov ecx, dword [esp + 0x2d70]
add esp, 4
push eax
mov eax, dword [esp + 0x28]
add eax, 4
push eax
push ecx
push esi
call fcn.0042d270
push eax
call fcn.0042ca30
test eax, eax
mov dword [esp + 0x5c], eax
fild dword [esp + 0x5c]
jge 0x434b35
fadd dword [0x49f698]
fdiv qword [0x49f690]
mov edx, dword [esp + 0x68]
sub esp, 8
fstp qword [esp]
push edx
push str.____06d____012.6f____04X___x_08X__PzGetDiscBasicInfo___x_04X__s____08x___d___d___d___s___on__s_r_n
push 0x4cb080
call fcn.00432450
add esp, 0x3c
mov ecx, dword [esp + 0x2d50]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004810ab
add esp, 0x2d44
ret 0x18
lea eax, [esp + 0x10]
push eax
push ebx
call fcn.00452830
mov esi, eax
add esp, 8
test esi, esi
jne 0x434aae
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xcee0]
test ecx, ecx
je 0x438486
cmp ecx, 1
je 0x438486
lea ecx, [esp + 0x44]
push ecx
call fcn.004529d0
mov eax, dword [esp + 0x14]
push 0xf
push esi
push esi
push 3
push 6
lea edx, [esp + 0x5c]
push edx
add eax, 4
push eax
mov byte [esp + 0x64], 0
call fcn.0042da90
mov esi, eax
add esp, 0x20
test esi, esi
jne 0x43822a
cmp dword [ebp], 0xfffffffe
jne 0x434bf1
mov ecx, dword [esp + 0x10]
push ecx
call fcn.004528c0
add esp, 4
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xa9c], 0xffffffff
jne 0x437917
test dword [eax + 0x2fc], 0x1c000
je 0x434f99
push 0x1000
lea edx, [esp + 0x54]
push 0xcc
push edx
call fcn.00481440
lea eax, [esp + 0x50]
push eax
call fcn.004529d0
lea ecx, [esp + 0x5c]
push 0x1004
push ecx
mov byte [esp + 0x5c], 0xad
mov byte [esp + 0x5d], 1
mov byte [esp + 0x62], 0
mov byte [esp + 0x63], 0
call fcn.004529e0
mov ecx, dword [esp + 0x28]
push 0x14
push 0x1004
lea edx, [esp + 0x70]
push edx
mov ebp, 1
push ebp
push 0xc
lea eax, [esp + 0x70]
push eax
add ecx, 4
push ecx
call fcn.0042da90
add esp, 0x34
test eax, eax
jne 0x434e9f
mov eax, dword [esp + 0x5c]
cmp al, 0x42
jne 0x434cdb
cmp ah, 0x44
jne 0x434cdb
mov al, byte [esp + 0x5e]
cmp al, 0x4f
jne 0x434cb5
mov edx, dword [esp + 0x10]
mov dword [edx + 0xa9c], 0x4000
mov eax, dword [esp + 0x10]
xor edi, edi
mov dword [eax + 0xaa4], edi
jmp 0x434cdd
cmp al, 0x52
jne 0x434cc9
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xa9c], 0x8000
jmp 0x434cdb
cmp al, 0x57
jne 0x434cdb
mov edx, dword [esp + 0x10]
mov dword [edx + 0xa9c], 0x10000
xor edi, edi
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xa9c]
cmp eax, 0x10000
jne 0x434ec9
lea eax, [esp + 0x44]
push eax
call fcn.004529d0
lea ecx, [esp + 0x4f]
push 0x22
push ecx
mov byte [esp + 0x50], 0x51
call fcn.004529e0
mov ecx, dword [esp + 0x1c]
push 0x23
push 0x22
lea edx, [esp + 0x64]
push edx
push ebp
push 0xa
lea eax, [esp + 0x64]
push eax
add ecx, 4
push ecx
call fcn.0042da90
mov esi, eax
add esp, 0x28
cmp esi, edi
jne 0x43822a
mov dl, byte [esp + 0x52]
mov eax, dword [esp + 0x10]
and dl, 3
neg dl
sbb edx, edx
add edx, ebp
mov dword [eax + 0xab4], edx
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xab4], edi
je 0x434d71
mov dword [eax + 0xac0], edi
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xab4], edi
jne 0x434fa0
push edi
push 0x80000000
push 0x4000
lea ecx, [esp + 0x30]
push ebx
push ecx
call fcn.00431390
push 0x800
lea edx, [esp + 0x1168]
push edi
push edx
call fcn.00481440
mov ebx, dword [esp + 0x44]
add esp, 0x20
push 0x1000
lea eax, [esp + 0x54]
push 0x69
push eax
call fcn.00481440
push 1
push edi
lea ecx, [esp + 0x64]
push ecx
push ebx
call fcn.00431490
add esp, 0x1c
mov eax, 0x800
lea ecx, [esp + 0x1150]
lea edx, [esp + 0x50]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x434deb
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x434dd3
test eax, eax
je 0x434e48
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x434e3a
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x434e48
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x434e3a
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x434e48
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x434e3a
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x434e48
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x434e48
test esi, esi
mov eax, 1
jg 0x434e4a
or eax, 0xffffffff
jmp 0x434e4a
xor eax, eax
test eax, eax
jne 0x434e5d
add edi, 1
cmp edi, 0x226
jl 0x434da1
push ebx
call fcn.00431970
mov ecx, dword [esp + 0x14]
add esp, 4
cmp edi, 0x226
mov ebp, 1
jne 0x434ea8
mov eax, ebp
mov dword [ecx + 0xab4], eax
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov dword [edx + 0xac0], ecx
mov edx, dword [esp + 0x10]
mov dword [edx + 0xaa4], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 0xaac], ecx
mov eax, dword [esp + 0x10]
jmp 0x434f9e
mov dword [ecx + 0xaa4], 1
mov edx, dword [esp + 0x10]
mov dword [edx + 0xaac], 0
mov eax, dword [esp + 0x10]
jmp 0x434f9e
cmp eax, 0x8000
jne 0x434f83
lea eax, [esp + 0x44]
push eax
call fcn.004529d0
lea ecx, [esp + 0x4f]
push 0x22
push ecx
mov byte [esp + 0x50], 0x51
call fcn.004529e0
mov ecx, dword [esp + 0x1c]
push 0x23
push 0x22
lea edx, [esp + 0x64]
push edx
push ebp
push 0xa
lea eax, [esp + 0x64]
push eax
add ecx, 4
push ecx
call fcn.0042da90
mov esi, eax
add esp, 0x28
cmp esi, edi
jne 0x43822a
mov dl, byte [esp + 0x52]
mov eax, dword [esp + 0x10]
and dl, 3
neg dl
sbb edx, edx
add edx, ebp
mov dword [eax + 0xab4], edx
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xab4], edi
je 0x434f53
mov dword [eax + 0xac0], edi
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xaa4], ebp
mov eax, dword [esp + 0x10]
jmp 0x434fa0
cmp dword [eax + 0xa9c], 0x8000
jne 0x434f77
mov dl, byte [esp + 0x52]
and dl, 3
cmp dl, 1
jne 0x434f77
mov dword [eax + 0xaa4], ebp
mov eax, dword [esp + 0x10]
jmp 0x434fa0
mov dword [eax + 0xaa4], edi
mov eax, dword [esp + 0x10]
jmp 0x434fa0
mov dword [ecx + 0xaa4], edi
mov eax, dword [esp + 0x10]
mov dword [eax + 0xab4], edi
mov eax, dword [esp + 0x10]
jmp 0x434fa0
mov ebp, 1
xor edi, edi
cmp dword [eax + 0xa9c], 0xffffffff
jne 0x435b2c
mov ecx, dword [eax + 0x2fc]
test ecx, 0x3fc0
je 0x435b2c
test ecx, 0x1000
je 0x4350f4
push 0x1000
lea ecx, [esp + 0x54]
push edi
push ecx
call fcn.00481440
lea edx, [esp + 0x50]
push edx
call fcn.004529d0
lea eax, [esp + 0x56]
push 0x3b
push eax
mov byte [esp + 0x5c], 0x46
mov byte [esp + 0x5d], 2
call fcn.004529e0
lea ecx, [esp + 0x63]
push 0x800
push ecx
call fcn.004529e0
mov ecx, dword [esp + 0x30]
push 8
push 0x800
lea edx, [esp + 0x78]
push edx
push ebp
push 0xa
lea eax, [esp + 0x78]
push eax
add ecx, 4
push ecx
call fcn.0042da90
add esp, 0x3c
test eax, eax
jne 0x4350f0
mov edx, dword [esp + 0x50]
push edx
call fcn.00452a50
add esp, 4
cmp eax, 4
jle 0x4350f0
mov eax, dword [esp + 0x58]
push eax
call fcn.00452a30
add esp, 4
cmp eax, 0x3b
jne 0x4350f0
test byte [esp + 0x5a], 1
je 0x4350f0
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x44]
push edx
mov dword [ecx + 0xa9c], 0x1000
call fcn.004529d0
lea eax, [esp + 0x4a]
push edi
push eax
mov byte [esp + 0x50], 0xad
call fcn.00452a00
lea ecx, [esp + 0x58]
push 0xc
push ecx
mov byte [esp + 0x5e], 0
mov byte [esp + 0x5f], 0x20
call fcn.004529e0
mov ecx, dword [esp + 0x24]
push 9
push 0xc
lea edx, [esp + 0x6c]
push edx
push ebp
push 0xc
lea eax, [esp + 0x6c]
push eax
add ecx, 4
push ecx
call fcn.0042da90
add esp, 0x30
test eax, eax
jne 0x4354c1
mov edx, dword [esp + 0x58]
push edx
call fcn.00452a50
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [ecx + 0xac4], eax
jmp 0x4354c1
mov eax, dword [esp + 0x10]
mov esi, 0x2000
test dword [eax + 0x2fc], esi
je 0x43521e
push 0x1000
lea edx, [esp + 0x54]
push edi
push edx
call fcn.00481440
lea eax, [esp + 0x50]
push eax
call fcn.004529d0
lea ecx, [esp + 0x56]
push edi
push ecx
mov byte [esp + 0x5c], 0x46
mov byte [esp + 0x5d], 1
call fcn.004529e0
lea edx, [esp + 0x63]
push 0x800
push edx
call fcn.004529e0
mov edx, dword [esp + 0x30]
push 8
push 0x800
lea eax, [esp + 0x78]
push eax
push ebp
push 0xa
lea ecx, [esp + 0x78]
push ecx
add edx, 4
push edx
call fcn.0042da90
add esp, 0x3c
test eax, eax
jne 0x43521e
mov eax, dword [esp + 0x50]
push eax
call fcn.00452a50
add esp, 4
cmp eax, 4
jle 0x43521e
mov ecx, dword [esp + 0x56]
push ecx
call fcn.00452a30
add esp, 4
cmp eax, 0x15
je 0x4351a9
mov edx, dword [esp + 0x56]
push edx
call fcn.00452a30
add esp, 4
cmp eax, 0x16
jne 0x43521e
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x44]
push ecx
mov dword [eax + 0xa9c], esi
call fcn.004529d0
lea edx, [esp + 0x4a]
push edi
push edx
mov byte [esp + 0x50], 0xad
call fcn.00452a00
lea eax, [esp + 0x58]
push 0xc
push eax
mov byte [esp + 0x5e], 0
mov byte [esp + 0x5f], 0x20
call fcn.004529e0
mov eax, dword [esp + 0x24]
push 9
push 0xc
lea ecx, [esp + 0x6c]
push ecx
push ebp
push 0xc
lea edx, [esp + 0x6c]
push edx
add eax, 4
push eax
call fcn.0042da90
add esp, 0x30
test eax, eax
jne 0x4354c1
mov ecx, dword [esp + 0x58]
push ecx
call fcn.00452a50
add esp, 4
jmp 0x4354b7
lea eax, [esp + 0x44]
push eax
call fcn.004529d0
lea ecx, [esp + 0x4a]
push edi
push ecx
mov byte [esp + 0x50], 0xad
call fcn.00452a00
lea edx, [esp + 0x58]
push 0x804
push edx
mov byte [esp + 0x5e], 0
mov byte [esp + 0x5f], 0
call fcn.004529e0
mov edx, dword [esp + 0x24]
push 9
push 0x804
lea eax, [esp + 0x6c]
push eax
push ebp
push 0xc
lea ecx, [esp + 0x6c]
push ecx
add edx, 4
push edx
call fcn.0042da90
add esp, 0x30
test eax, eax
jne 0x4358de
movzx eax, byte [esp + 0x54]
shr eax, 4
add eax, 0xffffffff
cmp eax, 9
ja case.0x435291.3
jmp dword [eax*4 + 0x438490]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xa9c], 0x800
jmp 0x4354c1
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xa9c], 0x80
test byte [esp + 0x56], 0x60
je 0x4354c1
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x44]
push eax
mov dword [edx + 0xa9c], esi
call fcn.004529d0
lea ecx, [esp + 0x4a]
push edi
push ecx
mov byte [esp + 0x50], 0xad
call fcn.00452a00
lea edx, [esp + 0x58]
push 0xc
push edx
mov byte [esp + 0x5e], 0
mov byte [esp + 0x5f], 0x20
call fcn.004529e0
mov edx, dword [esp + 0x24]
push 9
push 0xc
lea eax, [esp + 0x6c]
push eax
push ebp
push 0xc
lea ecx, [esp + 0x6c]
push ecx
add edx, 4
push edx
call fcn.0042da90
add esp, 0x30
test eax, eax
jne 0x4354c1
mov eax, dword [esp + 0x58]
push eax
jmp 0x4350d9
mov edx, dword [esp + 0x10]
mov dword [edx + 0xa9c], 0x100
jmp 0x4354c1
mov eax, dword [esp + 0x10]
mov dword [eax + 0xa9c], 0x200
jmp 0x4354c1
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xa9c], 0x400
jmp 0x4354c1
mov edx, dword [esp + 0x10]
push 0x1000
lea eax, [esp + 0x54]
push edi
push eax
mov dword [edx + 0xa9c], 0x40
call fcn.00481440
lea ecx, [esp + 0x50]
push ecx
call fcn.004529d0
lea edx, [esp + 0x56]
push 0x2b
push edx
mov byte [esp + 0x5c], 0x46
mov byte [esp + 0x5d], 2
call fcn.004529e0
lea eax, [esp + 0x63]
push 0x800
push eax
call fcn.004529e0
mov eax, dword [esp + 0x30]
push 8
push 0x800
lea ecx, [esp + 0x78]
push ecx
push ebp
push 0xa
lea edx, [esp + 0x78]
push edx
add eax, 4
push eax
call fcn.0042da90
add esp, 0x3c
test eax, eax
jne 0x43540b
mov ecx, dword [esp + 0x50]
push ecx
call fcn.00452a50
add esp, 4
cmp eax, 4
jle 0x43540b
test byte [esp + 0x5a], 1
je 0x43540b
mov edx, dword [esp + 0x10]
mov dword [edx + 0xa9c], 0x200
jmp 0x4354c1
push 0x1000
lea eax, [esp + 0x54]
push edi
push eax
call fcn.00481440
lea ecx, [esp + 0x50]
push ecx
call fcn.004529d0
lea edx, [esp + 0x56]
push 0x2a
push edx
mov byte [esp + 0x5c], 0x46
mov byte [esp + 0x5d], 2
call fcn.004529e0
lea eax, [esp + 0x63]
push 0x800
push eax
call fcn.004529e0
mov eax, dword [esp + 0x30]
push 8
push 0x800
lea ecx, [esp + 0x78]
push ecx
push ebp
push 0xa
lea edx, [esp + 0x78]
push edx
add eax, 4
push eax
call fcn.0042da90
add esp, 0x3c
test eax, eax
jne 0x43549b
mov ecx, dword [esp + 0x50]
push ecx
call fcn.00452a50
add esp, 4
cmp eax, 4
jle 0x43549b
test byte [esp + 0x5a], 1
je 0x43549b
mov edx, dword [esp + 0x10]
mov dword [edx + 0xa9c], 0x400
jmp 0x4354c1
mov eax, dword [esp + 0x10]
mov dword [eax + 0xab4], edi
mov ecx, dword [esp + 0x60]
push ecx
call fcn.00452a50
add esp, 4
sub eax, 0x2ffff
mov edx, dword [esp + 0x10]
mov dword [edx + 0xac4], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xa9c]
cmp eax, 0x40
je 0x4358d3
cmp eax, 0x800
je 0x4356df
cmp eax, 0x400
je 0x4356df
lea eax, [esp + 0x44]
push eax
call fcn.004529d0
lea ecx, [esp + 0x4f]
push 0x22
push ecx
mov byte [esp + 0x50], 0x51
call fcn.004529e0
mov ecx, dword [esp + 0x1c]
push 0x23
push 0x22
lea edx, [esp + 0x64]
push edx
push ebp
push 0xa
lea eax, [esp + 0x64]
push eax
add ecx, 4
push ecx
call fcn.0042da90
mov esi, eax
add esp, 0x28
cmp esi, edi
jne 0x43822a
mov al, byte [esp + 0x52]
mov bl, al
and bl, 3
mov edx, 0
sete dl
mov byte [esp + 0x2b], al
mov eax, dword [esp + 0x10]
mov dword [eax + 0xab4], edx
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xab4], edi
je 0x435571
mov dword [eax + 0xac0], edi
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xab4], edi
jne 0x435633
cmp dword [eax + 0xa9c], 0x2000
jne 0x435633
push 0x1000
lea ecx, [esp + 0x54]
push edi
push ecx
mov dword [eax + 0xab8], edi
call fcn.00481440
lea edx, [esp + 0x50]
push edx
call fcn.004529d0
lea eax, [esp + 0x56]
push 0x33
push eax
mov byte [esp + 0x5c], 0x46
mov byte [esp + 0x5d], 2
call fcn.004529e0
lea ecx, [esp + 0x63]
push 0x800
push ecx
call fcn.004529e0
mov ecx, dword [esp + 0x30]
push 8
push 0x800
lea edx, [esp + 0x78]
push edx
push ebp
push 0xa
lea eax, [esp + 0x78]
push eax
add ecx, 4
push ecx
call fcn.0042da90
add esp, 0x3c
test eax, eax
jne 0x43562f
mov edx, dword [esp + 0x50]
push edx
call fcn.00452a50
add esp, 4
cmp eax, 4
jle 0x43562f
test byte [esp + 0x5a], 1
je 0x435613
mov eax, dword [esp + 0x10]
mov dword [eax + 0xab8], ebp
jmp 0x43562f
mov ecx, dword [esp + 0x56]
push ecx
call fcn.00452a30
add esp, 4
cmp eax, 0x16
jne 0x43562f
mov edx, dword [esp + 0x10]
mov dword [edx + 0xab8], ebp
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xa9c], 0x100
jne 0x4356b4
mov dword [eax + 0xaa4], ebp
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xab4], edi
jne 0x4356c3
lea ecx, [esp + 0x44]
push ecx
call fcn.004529d0
lea edx, [esp + 0x4a]
push ebp
push edx
mov byte [esp + 0x50], 0x52
mov byte [esp + 0x51], 1
call fcn.00452a00
lea eax, [esp + 0x57]
push 0x24
push eax
call fcn.004529e0
mov eax, dword [esp + 0x24]
push 0x2d
push 0x24
lea ecx, [esp + 0x6c]
push ecx
push ebp
push 0xa
lea edx, [esp + 0x6c]
push edx
add eax, 4
push eax
call fcn.0042da90
add esp, 0x30
test eax, eax
jne 0x4356c3
test byte [esp + 0x56], 0x20
jne 0x4356c3
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xaa4], edi
jmp 0x4356c3
mov dl, 1
cmp dl, bl
sbb ecx, ecx
add ecx, 1
mov dword [eax + 0xaa4], ecx
mov al, byte [esp + 0x2b]
and al, 0xc
xor edx, edx
cmp al, 4
mov eax, dword [esp + 0x10]
sete dl
mov dword [eax + 0xaac], edx
jmp 0x435b28
mov ecx, dword [esp + 0x2d58]
push edi
push 0x80000000
push 0x4000
push ecx
lea edx, [esp + 0x34]
push edx
call fcn.00431390
push 0x800
lea eax, [esp + 0x1168]
push edi
push eax
call fcn.00481440
mov ebx, dword [esp + 0x44]
add esp, 0x20
jmp 0x435720
push 0x1000
lea ecx, [esp + 0x54]
push 0x69
push ecx
call fcn.00481440
push 1
push edi
lea edx, [esp + 0x64]
push edx
push ebx
call fcn.00431490
add esp, 0x1c
mov eax, 0x800
lea ecx, [esp + 0x1150]
lea edx, [esp + 0x50]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x43576a
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x435752
test eax, eax
je 0x4357c7
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x4357b9
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x4357c7
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x4357b9
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x4357c7
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x4357b9
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x4357c7
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x4357c7
test esi, esi
mov eax, 1
jg 0x4357c9
or eax, 0xffffffff
jmp 0x4357c9
xor eax, eax
test eax, eax
jne 0x4357dc
add edi, 1
cmp edi, 0x226
jl 0x435720
push ebx
call fcn.00431970
add esp, 4
cmp edi, 0x226
jne 0x435828
mov ecx, dword [esp + 0x10]
mov eax, 1
mov dword [ecx + 0xab4], eax
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov dword [edx + 0xac0], ecx
mov edx, dword [esp + 0x10]
mov dword [edx + 0xaa4], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 0xaac], ecx
mov ebp, 1
xor edi, edi
jmp 0x435b28
lea ecx, [esp + 0x44]
push ecx
call fcn.004529d0
lea edx, [esp + 0x4f]
push 0x22
push edx
mov byte [esp + 0x50], 0x51
call fcn.004529e0
mov edx, dword [esp + 0x1c]
push 0x23
push 0x22
lea eax, [esp + 0x64]
push eax
push 1
push 0xa
lea ecx, [esp + 0x64]
push ecx
add edx, 4
push edx
call fcn.0042da90
mov esi, eax
add esp, 0x28
test esi, esi
jne 0x43822a
mov al, byte [esp + 0x52]
mov ecx, dword [esp + 0x10]
and al, 3
neg al
sbb eax, eax
add eax, 1
mov dword [ecx + 0xab4], eax
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xab4], esi
je 0x43589c
mov dword [eax + 0xac0], esi
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xa9c]
shr edx, 0xb
not edx
and edx, 1
mov dword [eax + 0xaa4], edx
mov al, byte [esp + 0x52]
mov edx, dword [esp + 0x10]
xor ecx, ecx
and al, 0xc
cmp al, 4
sete cl
mov ebp, 1
xor edi, edi
mov dword [edx + 0xaac], ecx
jmp 0x435b28
mov dword [ecx + 0xaa4], edi
jmp 0x435b28
push 0x1000
lea eax, [esp + 0x54]
push edi
push eax
call fcn.00481440
lea ecx, [esp + 0x50]
push ecx
call fcn.004529d0
lea edx, [esp + 0x56]
push 0x2b
push edx
mov byte [esp + 0x5c], 0x46
mov byte [esp + 0x5d], 2
call fcn.004529e0
lea eax, [esp + 0x63]
push 0x800
push eax
call fcn.004529e0
mov eax, dword [esp + 0x30]
push 8
push 0x800
lea ecx, [esp + 0x78]
push ecx
push ebp
push 0xa
lea edx, [esp + 0x78]
push edx
add eax, 4
push eax
call fcn.0042da90
add esp, 0x3c
test eax, eax
jne 0x435a03
mov ecx, dword [esp + 0x50]
push ecx
call fcn.00452a50
add esp, 4
cmp eax, 4
jle 0x435a03
test byte [esp + 0x5a], 1
je 0x435a03
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x44]
push eax
mov dword [edx + 0xa9c], 0x200
call fcn.004529d0
lea ecx, [esp + 0x4f]
push 0x22
push ecx
mov byte [esp + 0x50], 0x51
call fcn.004529e0
mov ecx, dword [esp + 0x1c]
push 0x23
push 0x22
lea edx, [esp + 0x64]
push edx
push ebp
push 0xa
lea eax, [esp + 0x64]
push eax
add ecx, 4
push ecx
call fcn.0042da90
mov esi, eax
add esp, 0x28
cmp esi, edi
jne 0x43822a
mov dl, byte [esp + 0x52]
mov eax, dword [esp + 0x10]
and dl, 3
neg dl
sbb edx, edx
add edx, 1
mov dword [eax + 0xab4], edx
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xab4], edi
je 0x4359ec
mov dword [eax + 0xac0], edi
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x52]
and cl, 3
mov dl, 1
cmp dl, cl
sbb ecx, ecx
add ecx, 1
mov dword [eax + 0xaa4], ecx
push 0x1000
lea edx, [esp + 0x54]
push edi
push edx
call fcn.00481440
lea eax, [esp + 0x50]
push eax
call fcn.004529d0
lea ecx, [esp + 0x56]
push 0x2a
push ecx
mov byte [esp + 0x5c], 0x46
mov byte [esp + 0x5d], 2
call fcn.004529e0
lea edx, [esp + 0x63]
push 0x800
push edx
call fcn.004529e0
mov edx, dword [esp + 0x30]
push 8
push 0x800
lea eax, [esp + 0x78]
push eax
push ebp
push 0xa
lea ecx, [esp + 0x78]
push ecx
add edx, 4
push edx
call fcn.0042da90
add esp, 0x3c
test eax, eax
jne 0x435b28
mov eax, dword [esp + 0x50]
push eax
call fcn.00452a50
add esp, 4
cmp eax, 4
jle 0x435b28
test byte [esp + 0x5a], 1
je 0x435b28
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x44]
push edx
mov dword [ecx + 0xa9c], 0x400
call fcn.004529d0
lea eax, [esp + 0x4f]
push 0x22
push eax
mov byte [esp + 0x50], 0x51
call fcn.004529e0
mov eax, dword [esp + 0x1c]
push 0x23
push 0x22
lea ecx, [esp + 0x64]
push ecx
push ebp
push 0xa
lea edx, [esp + 0x64]
push edx
add eax, 4
push eax
call fcn.0042da90
mov esi, eax
add esp, 0x28
cmp esi, edi
jne 0x43822a
mov cl, byte [esp + 0x52]
mov edx, dword [esp + 0x10]
and cl, 3
neg cl
sbb ecx, ecx
add ecx, 1
mov dword [edx + 0xab4], ecx
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xab4], edi
je 0x435b11
mov dword [eax + 0xac0], edi
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x52]
and cl, 3
mov dl, 1
cmp dl, cl
sbb ecx, ecx
add ecx, 1
mov dword [eax + 0xaa4], ecx
mov eax, dword [esp + 0x10]
or ebx, 0xffffffff
cmp dword [eax + 0xa9c], ebx
jne 0x435ca9
test byte [eax + 0x2fc], 7
je 0x435ca9
lea edx, [esp + 0x44]
push edx
call fcn.004529d0
lea eax, [esp + 0x4f]
push 0x22
push eax
mov byte [esp + 0x50], 0x51
call fcn.004529e0
mov eax, dword [esp + 0x1c]
push 0x23
push 0x22
lea ecx, [esp + 0x64]
push ecx
push ebp
push 0xa
lea edx, [esp + 0x64]
push edx
add eax, 4
push eax
call fcn.0042da90
add esp, 0x28
test eax, eax
jne 0x435ca5
mov al, byte [esp + 0x52]
test al, 3
jne 0x435bb9
mov cl, byte [esp + 0x55]
cmp cl, byte [esp + 0x56]
jbe 0x435bb9
mov eax, dword [esp + 0x10]
push eax
mov esi, 0x1a
call fcn.004528c0
mov edi, dword [esp + 0x30]
add esp, 4
jmp 0x434aae
and eax, 3
sub eax, edi
je 0x435c31
sub eax, ebp
je 0x435c00
mov edx, dword [esp + 0x10]
mov dword [edx + 0xa9c], ebp
mov eax, dword [esp + 0x10]
mov dword [eax + 0xab4], edi
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xaa4], edi
test byte [esp + 0x52], 0x10
je 0x435c87
mov edx, dword [esp + 0x10]
mov dword [edx + 0xa9c], 4
jmp 0x435c87
mov eax, dword [esp + 0x10]
mov dword [eax + 0xab4], edi
mov cl, byte [esp + 0x52]
mov edx, dword [esp + 0x10]
and cl, 0x10
neg cl
sbb ecx, ecx
and ecx, 2
add ecx, 2
mov dword [edx + 0xa9c], ecx
mov eax, dword [esp + 0x10]
mov dword [eax + 0xaa4], ebp
jmp 0x435c87
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xab4], ebp
mov edx, dword [esp + 0x10]
mov dword [edx + 0xac0], edi
test byte [esp + 0x52], 0x10
mov eax, dword [esp + 0x10]
jne 0x435c73
mov dword [eax + 0xa9c], 2
mov ecx, dword [esp + 0x60]
push ecx
call fcn.00452a50
mov edx, dword [esp + 0x14]
add esp, 4
mov dword [edx + 0xafc], eax
jmp 0x435c7d
mov dword [eax + 0xa9c], 4
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xaa4], ebp
mov al, byte [esp + 0x52]
and al, 0xc
cmp al, 4
jne 0x435ca5
mov edx, dword [esp + 0x10]
mov dword [edx + 0xaac], ebp
mov eax, dword [esp + 0x10]
mov dword [eax + 0xaa4], edi
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xab4], ebp
jne 0x435cc6
mov dword [eax + 0xaec], ebp
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xaf4], ebp
jmp 0x435ead
mov eax, dword [eax + 0xa9c]
cmp eax, ebx
je 0x435d40
test eax, 0x1ffc0
je 0x435d40
lea edx, [esp + 0x44]
push edx
call fcn.004529d0
lea eax, [esp + 0x4f]
push 0x22
push eax
mov byte [esp + 0x50], 0x51
call fcn.004529e0
mov eax, dword [esp + 0x1c]
push 0x23
push 0x22
lea ecx, [esp + 0x64]
push ecx
push ebp
push 0xa
lea edx, [esp + 0x64]
push edx
add eax, 4
push eax
call fcn.0042da90
mov esi, eax
add esp, 0x28
cmp esi, edi
jne 0x43822a
movzx ecx, byte [esp + 0x54]
mov edx, dword [esp + 0x10]
mov dword [edx + 0xaec], ecx
movzx eax, byte [esp + 0x56]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xaf4], eax
jmp 0x435ead
lea edx, [esp + 0x44]
push edx
call fcn.004529d0
lea eax, [esp + 0x4f]
push 0xc
push eax
mov byte [esp + 0x50], 0x43
mov byte [esp + 0x52], 1
mov byte [esp + 0x56], 0
call fcn.004529e0
mov eax, dword [esp + 0x1c]
push 0x1e
push 0xc
lea ecx, [esp + 0x64]
push ecx
push ebp
push 0xa
lea edx, [esp + 0x64]
push edx
add eax, 4
push eax
call fcn.0042da90
mov esi, eax
add esp, 0x28
cmp esi, edi
je 0x435e05
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xaac], edi
je 0x43822e
lea ecx, [esp + 0x44]
push ecx
call fcn.004529d0
lea edx, [esp + 0x4f]
push 0x22
push edx
mov byte [esp + 0x50], 0x51
call fcn.004529e0
mov edx, dword [esp + 0x1c]
push 0x23
push 0x22
lea eax, [esp + 0x64]
push eax
push ebp
push 0xa
lea ecx, [esp + 0x64]
push ecx
add edx, 4
push edx
call fcn.0042da90
mov esi, eax
add esp, 0x28
cmp esi, edi
jne 0x43822a
movzx eax, byte [esp + 0x54]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xaec], eax
movzx edx, byte [esp + 0x56]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xaf4], edx
jmp 0x435ead
movzx ecx, byte [esp + 0x53]
mov edx, dword [esp + 0x10]
mov dword [edx + 0xaec], ecx
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xaa4], ebp
jne 0x435e2e
cmp dword [eax + 0xaac], ebp
je 0x435e2e
add dword [eax + 0xaec], ebp
lea eax, [esp + 0x44]
push eax
call fcn.004529d0
lea ecx, [esp + 0x4f]
push 0x324
push ecx
mov byte [esp + 0x50], 0x43
mov byte [esp + 0x52], 0
mov byte [esp + 0x56], 0
call fcn.004529e0
mov ecx, dword [esp + 0x1c]
push 0x1e
push 0x324
lea edx, [esp + 0x64]
push edx
push ebp
push 0xa
lea eax, [esp + 0x64]
push eax
add ecx, 4
push ecx
call fcn.0042da90
mov esi, eax
add esp, 0x28
cmp esi, edi
jne 0x43822a
movzx edx, byte [esp + 0x53]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xaf4], edx
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xaa4], ebp
jne 0x435eb1
cmp dword [eax + 0xaac], ebp
je 0x435eb1
add dword [eax + 0xaf4], ebp
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x1484], ebx
jne 0x43677b
cmp dword [eax + 0xa9c], ebx
je 0x43677b
cmp dword [eax + 0xab4], edi
je 0x435f7c
mov dword [eax + 0xb10], edi
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xb14], ebp
mov edx, dword [esp + 0x10]
mov dword [edx + 0xb18], 0x100
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x44]
push ecx
mov dword [eax + 0x1484], 0x1000
call fcn.004529d0
lea edx, [esp + 0x4f]
push 0x22
push edx
mov byte [esp + 0x50], 0x51
call fcn.004529e0
mov edx, dword [esp + 0x1c]
push 0x23
push 0x22
lea eax, [esp + 0x64]
push eax
push ebp
push 0xa
lea ecx, [esp + 0x64]
push ecx
add edx, 4
push edx
call fcn.0042da90
add esp, 0x28
test eax, eax
jne 0x436777
movzx ecx, byte [esp + 0x61]
mov eax, 0x64
sub eax, ecx
movzx ecx, byte [esp + 0x63]
mov edx, eax
shl edx, 4
sub edx, eax
movzx eax, byte [esp + 0x62]
add edx, edx
add edx, edx
sub edx, eax
mov eax, dword [esp + 0x10]
imul edx, edx, 0x4b
sub edx, ecx
mov dword [eax + 0x324], edx
jmp 0x436777
mov ecx, dword [eax + 0xaf4]
xor ebp, ebp
or ebx, 0xffffffff
test ecx, ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebx
jle 0x43677b
cmp dword [eax + 0xaec], 1
jne 0x435fb7
cmp ecx, 0xa
jle 0x435fb7
test byte [eax + 0xa9c], 7
je 0x435fb7
cmp ebp, 1
jg 0x43664c
lea ecx, [esp + 0x44]
push ecx
call fcn.004529d0
lea edx, [ebp + 1]
push edx
lea eax, [esp + 0x4e]
push eax
mov byte [esp + 0x50], 0x52
mov byte [esp + 0x51], 1
call fcn.00452a00
lea ecx, [esp + 0x57]
push 0x30
push ecx
call fcn.004529e0
mov ecx, dword [esp + 0x24]
push 0x2d
push 0x30
lea edx, [esp + 0x6c]
push edx
push 1
push 0xa
lea eax, [esp + 0x6c]
push eax
add ecx, 4
push ecx
call fcn.0042da90
mov esi, eax
add esp, 0x30
test esi, esi
jne 0x436666
mov esi, ebp
shl esi, 4
add esi, ebp
add esi, esi
add esi, esi
test byte [esp + 0x55], 0xc0
je 0x4361f7
mov dl, byte [esp + 0x56]
and dl, 0xc0
cmp dl, 0x40
jne 0x436047
mov eax, dword [esp + 0x10]
mov dword [esi + eax + 0x1484], 0x1000
jmp 0x4364fa
mov ecx, dword [esp + 0x58]
push ecx
call fcn.00452a50
mov edx, dword [esp + 0x14]
mov dword [esi + edx + 0x1470], eax
mov eax, dword [esp + 0x14]
mov dword [esi + eax + 0x1484], 0x4000
mov ecx, dword [esp + 0x14]
add esp, 4
mov edi, 0x2000
cmp dword [ecx + 0xa9c], edi
lea edx, [esp + 0x44]
push edx
jne 0x436150
call fcn.004529d0
lea eax, [esp + 0x50]
push 0x804
push eax
mov byte [esp + 0x50], 0xad
mov byte [esp + 0x56], 0
mov byte [esp + 0x57], 0
call fcn.004529e0
mov eax, dword [esp + 0x1c]
push 0x5a
push 0x804
lea ecx, [esp + 0x1d64]
push ecx
push 1
push 0xc
lea edx, [esp + 0x64]
push edx
add eax, 4
push eax
call fcn.0042da90
add esp, 0x28
test eax, eax
jne 0x436777
mov ecx, dword [esp + 0x1d58]
push ecx
call fcn.00452a50
mov edx, dword [esp + 0x1d64]
push edx
mov ebp, eax
call fcn.00452a50
mov edi, eax
mov eax, dword [esp + 0x84]
push eax
sub edi, ebp
call fcn.00452a50
mov ecx, dword [esp + 0x74]
sub edi, eax
push ecx
add edi, edi
call fcn.00452a50
mov edx, dword [esp + 0x20]
mov dword [esi + edx + 0x1478], eax
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x20]
push ecx
lea ebp, [esi + eax + 0x1478]
call fcn.00452a50
sub dword [ebp], eax
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
add esp, 0x14
sub dword [esi + eax + 0x1478], edi
jmp 0x4364fa
call fcn.004529d0
lea eax, [ebp + 2]
push eax
lea ecx, [esp + 0x4e]
push ecx
mov byte [esp + 0x50], 0x52
mov byte [esp + 0x51], 1
call fcn.00452a00
lea edx, [esp + 0x57]
push 0x24
push edx
call fcn.004529e0
mov edx, dword [esp + 0x24]
push 0x2d
push 0x24
lea eax, [esp + 0x1d6c]
push eax
push 1
push 0xa
lea ecx, [esp + 0x6c]
push ecx
add edx, 4
push edx
call fcn.0042da90
add esp, 0x30
test eax, eax
je 0x4361cf
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xa9c], edi
jne 0x43677b
mov eax, dword [esp + 0x68]
push eax
call fcn.00452a50
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [esi + ecx + 0x1478], eax
jmp 0x4364fa
mov eax, dword [esp + 0x1d58]
mov edx, dword [esp + 0x10]
push eax
lea edi, [esi + edx]
call fcn.00452a50
add esp, 4
sub eax, dword [edi + 0x1470]
mov dword [edi + 0x1478], eax
jmp 0x4364fa
mov cl, byte [esp + 0x56]
and cl, 0xc0
cmp cl, 0x40
jne 0x436217
mov edx, dword [esp + 0x10]
mov dword [esi + edx + 0x1484], 0x1000
jmp 0x4364fa
mov eax, dword [esp + 0x58]
push eax
call fcn.00452a50
mov ecx, dword [esp + 0x14]
mov dword [esi + ecx + 0x1470], eax
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xa9c]
add esp, 4
cmp eax, 0xffffffff
je 0x43642e
test eax, 0x10c00
je 0x4363f4
mov eax, dword [esp + 0x2d58]
push 0
push 0x80000000
push 0x4000
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.00431390
add esp, 0x14
test eax, eax
jne 0x4363ed
mov edx, dword [esp + 0x10]
mov eax, dword [esi + edx + 0x1470]
mov ebp, dword [esp + 0x24]
push 1
add eax, 0x10
push eax
lea ecx, [esp + 0x1158]
push ecx
push ebp
call fcn.00431490
add esp, 0x10
test eax, eax
jne 0x43639b
mov eax, 6
mov ecx, 0x4a0264
lea edx, [esp + 0x1150]
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x4362cd
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x4362b5
test eax, eax
je 0x436332
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x43631c
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x43632e
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x43631c
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x43632e
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x43631c
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x43632e
movzx edi, byte [edx]
movzx edx, byte [ecx]
sub edi, edx
je 0x43632e
test edi, edi
mov ebx, dword [esp + 0x18]
mov eax, 1
jg 0x436334
or eax, 0xffffffff
jmp 0x436334
mov ebx, dword [esp + 0x18]
xor eax, eax
test eax, eax
jne 0x43635d
mov eax, dword [esp + 0x11a0]
mov ecx, dword [esp + 0x10]
mov dword [esi + ecx + 0x1478], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x11a0]
mov dword [edx + 0xac0], eax
jmp 0x43639b
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.00452a50
mov edx, dword [esp + 0x14]
mov dword [esi + edx + 0x1478], eax
mov ecx, dword [esp + 0x14]
add esp, 4
cmp dword [esi + ecx + 0x1478], 0
jne 0x43639f
mov eax, dword [esp + 0x68]
push eax
call fcn.00452a50
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [esi + ecx + 0x1478], eax
mov ecx, dword [esp + 0x10]
test dword [ecx + 0xa9c], 0x10000
mov eax, dword [esi + ecx + 0x1478]
mov edx, eax
je 0x4363c8
and edx, 0x8000001f
jns 0x4363c1
dec edx
or edx, 0xffffffe0
inc edx
sub eax, edx
add eax, 0x20
jmp 0x4363da
and edx, 0x8000000f
jns 0x4363d5
dec edx
or edx, 0xfffffff0
inc edx
sub eax, edx
add eax, 0x10
push ebp
mov dword [esi + ecx + 0x1478], eax
call fcn.00431970
mov ebp, dword [esp + 0x18]
jmp 0x436443
mov eax, dword [esp + 0x5c]
push eax
jmp 0x436433
cmp eax, 0xffffffff
je 0x43642e
test al, al
jns 0x43642e
test ebp, ebp
jne 0x43642e
mov edx, dword [esp + 0x6c]
push edx
call fcn.00452a50
add esp, 4
test eax, eax
je 0x43642e
mov eax, dword [esp + 0x6c]
push eax
call fcn.00452a50
mov ecx, dword [esp + 0x14]
add esp, 4
add eax, 1
mov dword [ecx + 0x1478], eax
jmp 0x436446
mov edx, dword [esp + 0x68]
push edx
call fcn.00452a50
mov ecx, dword [esp + 0x14]
mov dword [esi + ecx + 0x1478], eax
add esp, 4
mov edx, dword [esp + 0x10]
mov dword [esi + edx + 0x1484], 0
mov cl, byte [esp + 0x56]
mov al, cl
and al, 0xc0
cmp al, 0xc0
jne 0x436474
mov ecx, dword [esp + 0x10]
mov dword [esi + ecx + 0x1484], 0x80000
mov cl, byte [esp + 0x56]
mov eax, dword [esp + 0x10]
test dword [eax + 0xa9c], 0x1ffc0
jne 0x4364ef
test byte [esp + 0x55], 4
jne 0x4364ae
or dword [esi + eax + 0x1484], 0x2000
test byte [esp + 0x55], 1
je 0x4364fa
mov eax, dword [esp + 0x10]
or dword [esi + eax + 0x1484], 0x20000
jmp 0x4364fa
and cl, 0xf
cmp cl, 1
jne 0x4364c3
or dword [esi + eax + 0x1484], 0x4000
jmp 0x4364ce
or dword [esi + eax + 0x1484], 0x8000
mov eax, dword [esp + 0x10]
test byte [eax + 0xa9c], 7
je 0x4364fa
test byte [esp + 0x55], 0x20
je 0x4364fa
or dword [esi + eax + 0x1484], 0x10000
jmp 0x4364fa
or dword [esi + eax + 0x1484], 0x4000
movzx edx, byte [esp + 0x53]
sub edx, 1
cmp ebx, edx
mov edi, 0x100
je 0x43659c
cmp ebx, 0xffffffff
je 0x436533
mov ecx, dword [esp + 0x10]
shl ebx, 4
mov eax, ebx
and dword [eax + ecx + 0xb18], 0xfffffdff
mov ecx, dword [esp + 0x10]
or dword [eax + ecx + 0xb18], edi
movzx ebx, byte [esp + 0x53]
mov ecx, dword [esp + 0x10]
sub ebx, 1
mov eax, ebx
shl eax, 4
mov dword [eax + ecx + 0xb18], 0
mov ecx, dword [esp + 0x10]
or dword [eax + ecx + 0xb18], 0x1000
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0xa9c]
test edx, 0x10400
mov dword [esp + 0x18], ebx
je 0x43657d
or dword [eax + ecx + 0xb18], edi
jmp 0x43659c
test edi, edx
je 0x436591
test byte [esp + 0x56], 0x20
je 0x436591
or dword [eax + ecx + 0xb18], edi
jmp 0x43659c
or dword [eax + ecx + 0xb18], 0x200
mov eax, dword [esp + 0x10]
lea edx, [ebx + 0xb1]
shl edx, 4
add eax, edx
cmp dword [eax], 0xffffffff
jne 0x4365c6
mov ecx, ebx
mov dword [eax], ebp
mov eax, dword [esp + 0x10]
shl ecx, 4
xor edx, edx
mov dword [ecx + eax + 0xb14], edx
jmp 0x4365c8
xor edx, edx
mov eax, dword [esp + 0x10]
mov ecx, ebx
shl ecx, 4
add dword [ecx + eax + 0xb14], 1
mov eax, dword [esp + 0x10]
test dword [esi + eax + 0x1484], 0x1000
je 0x436604
and dword [ecx + eax + 0xb18], 0xfffffdff
mov eax, dword [esp + 0x10]
or dword [ecx + eax + 0xb18], edi
mov eax, dword [esp + 0x10]
test dword [eax + 0xa9c], 0x3fc0
jne 0x43662a
test dword [esi + eax + 0x1484], 0x2000
jne 0x436635
mov dword [esi + eax + 0x148c], 0x96
jmp 0x436631
mov dword [esi + eax + 0x148c], edx
mov eax, dword [esp + 0x10]
test dword [eax + 0xa9c], 0x1c000
je 0x43664c
mov dword [esi + eax + 0x148c], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xaf4]
add ebp, 1
cmp ebp, ecx
mov dword [esp + 0x14], ebp
jl 0x435f97
jmp 0x43677b
push esi
call fcn.00452af0
add esp, 4
cmp eax, 5
jne 0x436686
push esi
call fcn.00452b00
add esp, 4
cmp eax, 0x20
je 0x436777
test ebp, ebp
jne 0x43822a
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xaf4], 1
jne 0x43822e
lea ecx, [esp + 0x44]
push ecx
call fcn.004529d0
lea edx, [esp + 0x50]
push 0x804
push edx
mov byte [esp + 0x50], 0xad
mov byte [esp + 0x56], 0
mov byte [esp + 0x57], 0
call fcn.004529e0
mov edx, dword [esp + 0x1c]
push 9
push 0x804
lea eax, [esp + 0x64]
push eax
push 1
push 0xc
lea ecx, [esp + 0x64]
push ecx
add edx, 4
push edx
call fcn.0042da90
add esp, 0x28
test eax, eax
jne 0x436777
mov eax, dword [esp + 0x10]
mov dword [eax + 0x1484], 0x4000
mov ecx, dword [esp + 0x58]
push ecx
call fcn.00452a50
mov edx, dword [esp + 0x14]
sub eax, 0x30000
mov dword [edx + 0x1470], eax
mov eax, dword [esp + 0x5c]
push eax
call fcn.00452a50
mov ecx, dword [esp + 0x64]
mov esi, 1
push ecx
sub esi, eax
call fcn.00452a50
mov edx, dword [esp + 0x1c]
add eax, esi
mov dword [edx + 0x1478], eax
mov ecx, dword [esp + 0x1c]
add esp, 0xc
xor eax, eax
mov dword [ecx + 0x148c], eax
mov edx, dword [esp + 0x10]
mov dword [edx + 0xb10], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 0xb14], 1
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xb18], 0x1220
mov eax, dword [esp + 0x10]
or ebp, 0xffffffff
cmp dword [eax + 0xaa0], ebp
jne 0x43724c
mov esi, 1
cmp dword [eax + 0xab4], esi
je 0x43724c
cmp dword [eax + 0xaac], esi
je 0x43724c
mov ecx, dword [eax + 0xa9c]
cmp ecx, ebp
je 0x4367bd
test ecx, 0x1ffc0
jne 0x43724c
push 0x1000
lea edx, [esp + 0x54]
push 0xcc
push edx
call fcn.00481440
lea eax, [esp + 0x50]
push eax
call fcn.004529d0
lea ecx, [esp + 0x5b]
push 0x324
push ecx
mov byte [esp + 0x5c], 0x43
mov byte [esp + 0x5e], 0
mov byte [esp + 0x62], 0
call fcn.004529e0
mov ecx, dword [esp + 0x28]
push 0x1e
push 0x324
lea edx, [esp + 0x70]
push edx
push esi
push 0xa
lea eax, [esp + 0x70]
push eax
add ecx, 4
push ecx
call fcn.0042da90
mov esi, eax
add esp, 0x34
test esi, esi
jne 0x43822a
mov cl, byte [esp + 0x56]
cmp cl, 0xaa
lea eax, [esp + 0x54]
je 0x436848
cmp cl, 0xcc
je 0x437248
mov cl, byte [eax + 0xa]
add eax, 8
cmp cl, 0xaa
jne 0x436834
mov edx, dword [eax + 4]
push edx
call fcn.00452a50
mov ebp, eax
lea eax, [esp + 0x48]
push eax
call fcn.004529d0
lea ecx, [esp + 0x53]
push 4
push ecx
mov byte [esp + 0x54], 0x43
mov byte [esp + 0x5a], 0
call fcn.004529e0
mov ecx, dword [esp + 0x20]
push 0x1e
push 4
lea edx, [esp + 0x68]
push edx
push 1
push 0xa
lea eax, [esp + 0x68]
push eax
add ecx, 4
push ecx
mov byte [esp + 0x79], 0x80
call fcn.0042da90
mov esi, eax
add esp, 0x2c
test esi, esi
jne 0x43822a
mov edx, dword [esp + 0x50]
push edx
call fcn.00452a30
mov ebx, eax
mov eax, dword [esp + 0x14]
add ebx, 2
add esp, 4
test bl, 1
mov dword [eax + 0xab0], esi
je 0x4368d6
mov ecx, dword [esp + 0x10]
add ebx, 1
mov dword [ecx + 0xab0], 2
push 0x1000
lea edx, [esp + 0x54]
push 0
push edx
call fcn.00481440
lea eax, [esp + 0x50]
push eax
call fcn.004529d0
lea ecx, [esp + 0x5b]
push ebx
push ecx
mov byte [esp + 0x5c], 0x43
mov byte [esp + 0x62], 0
call fcn.004529e0
mov ecx, dword [esp + 0x28]
push 0x1e
push ebx
lea edx, [esp + 0x70]
push edx
push 1
push 0xa
lea eax, [esp + 0x70]
push eax
add ecx, 4
push ecx
mov byte [esp + 0x81], 0x80
call fcn.0042da90
mov esi, eax
add esp, 0x34
test esi, esi
jne 0x43822a
mov eax, 0xba2e8ba3
mul ebx
mov edi, edx
shr edi, 3
lea eax, [edi - 1]
test eax, eax
mov dword [esp + 0x14], edi
mov esi, 1
jl 0x43698e
mov edx, eax
imul edx, edx, 0xb
lea ecx, [esp + edx + 0x57]
mov edi, edi
cmp byte [ecx], 0xa2
je 0x436971
sub eax, 1
sub ecx, 0xb
test eax, eax
jge 0x436960
jmp 0x43698e
imul eax, eax, 0xb
lea eax, [esp + eax + 0x5c]
push 1
push eax
call fcn.00452a80
sub eax, 0x96
add esp, 8
cmp ebp, eax
je 0x43698e
xor esi, esi
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0xab0], 1
jne 0x436ad5
mov edx, edi
imul edx, edx, 0xb
cmp byte [esp + edx + 0x4c], 0xa0
lea ebp, [esp + edx + 0x54]
jae 0x436ad5
lea eax, [esp + 0x44]
push eax
call fcn.004529d0
lea ecx, [esp + 0x4f]
push 0x324
push ecx
mov byte [esp + 0x50], 0x43
mov byte [esp + 0x51], 0
mov byte [esp + 0x52], 0
mov byte [esp + 0x56], 0
call fcn.004529e0
mov ecx, dword [esp + 0x1c]
push 0x1e
push 0x324
lea edx, [esp + 0x1964]
push edx
push 1
push 0xa
lea eax, [esp + 0x64]
push eax
add ecx, 4
push ecx
call fcn.0042da90
add esp, 0x28
test eax, eax
jne 0x436ad5
lea eax, [ebp - 8]
push esi
push eax
lea edi, [esp + 0x195c]
call fcn.00452b30
movzx edx, byte [esp + 0x195e]
add esp, 8
cmp edx, eax
je 0x436a48
lea eax, [ebp - 8]
push esi
push eax
add edi, 8
call fcn.00452b30
movzx ecx, byte [edi + 2]
add esp, 8
cmp ecx, eax
jne 0x436a30
mov edx, dword [edi + 4]
push esi
push edx
call fcn.00452a50
mov ecx, eax
mov eax, 0x7482296b
imul ecx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
add esp, 4
push eax
call fcn.00452b60
mov ecx, dword [edi + 4]
add esp, 8
push esi
push ecx
mov byte [ebp - 3], al
call fcn.00452a50
cdq
mov ecx, 0x1194
idiv ecx
mov eax, 0x1b4e81b5
add esp, 4
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
call fcn.00452b60
mov ecx, dword [edi + 4]
add esp, 8
push esi
push ecx
mov byte [ebp - 2], al
call fcn.00452a50
cdq
mov ecx, 0x1194
idiv ecx
mov ecx, 0x4b
add esp, 4
mov eax, edx
cdq
idiv ecx
push edx
call fcn.00452b60
mov edi, dword [esp + 0x1c]
add esp, 8
mov byte [ebp - 1], al
mov eax, dword [esp + 0x10]
add ebx, 4
push ebx
lea edx, [esp + 0x54]
push edx
add eax, 0xbebc
push eax
call fcn.00481900
add esp, 0xc
test edi, edi
jle 0x436b82
mov ecx, dword [esp + 0x14]
lea edi, [esp + 0x57]
mov dword [esp + 0x1c], ecx
jmp 0x436b10
mov edx, dword [esp + 0x10]
mov ebx, dword [edx + 0xaf0]
lea ebp, [edi - 3]
push esi
push ebp
call fcn.00452b30
add esp, 8
cmp ebx, eax
jle 0x436b2f
mov eax, ebx
jmp 0x436b39
push esi
push ebp
call fcn.00452b30
add esp, 8
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xaf0], eax
cmp byte [edi], 0xa0
jae 0x436b78
mov edx, dword [esp + 0x10]
mov ebx, dword [edx + 0xaf8]
push esi
push edi
call fcn.00452b30
add esp, 8
cmp ebx, eax
jle 0x436b64
mov eax, ebx
jmp 0x436b6e
push esi
push edi
call fcn.00452b30
add esp, 8
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xaf8], eax
add edi, 0xb
sub dword [esp + 0x1c], 1
jne 0x436b10
mov eax, dword [esp + 0x10]
xor ebp, ebp
cmp dword [eax + 0xaf0], ebp
jle 0x436c98
cmp dword [esp + 0x14], 0
jle 0x436c89
mov ebx, dword [esp + 0x14]
lea edi, [esp + 0x57]
cmp byte [edi], 0xa0
jne case.0x436c09.1
lea edx, [edi - 3]
push esi
push edx
call fcn.00452b30
lea ecx, [ebp + 1]
add esp, 8
cmp eax, ecx
jne case.0x436c09.1
lea edx, [edi + 5]
push esi
push edx
call fcn.00452b30
mov edx, dword [esp + 0x18]
sub eax, 1
lea ecx, [ebp + 0xb1]
shl ecx, 4
mov dword [ecx + edx], eax
mov ecx, dword [esp + 0x18]
mov eax, ebp
shl eax, 4
add eax, 0xb1c
mov dword [eax + ecx], 0x200
movzx ecx, byte [edi + 6]
add esp, 8
cmp ecx, 0x20
ja case.0x436c09.1
movzx edx, byte [ecx + 0x4384c8]
jmp dword [edx*4 + 0x4384b8]
mov ecx, dword [esp + 0x10]
or dword [eax + ecx], 0x1000
jmp case.0x436c09.1
mov ecx, dword [esp + 0x10]
or dword [eax + ecx], 0x4000
jmp case.0x436c09.1
mov ecx, dword [esp + 0x10]
or dword [eax + ecx], 0x2000
cmp byte [edi], 0xa1
jne 0x436c79
lea eax, [edi - 3]
push esi
push eax
call fcn.00452b30
lea ecx, [ebp + 1]
add esp, 8
cmp eax, ecx
jne 0x436c79
lea edx, [edi + 5]
push esi
push edx
call fcn.00452b30
mov ecx, eax
mov eax, dword [esp + 0x18]
lea edx, [ebp + 0xb1]
shl edx, 4
sub ecx, dword [edx + eax]
mov edx, ebp
add esp, 8
shl edx, 4
mov dword [edx + eax + 0xb14], ecx
add edi, 0xb
sub ebx, 1
jne 0x436ba7
mov eax, dword [esp + 0x10]
add ebp, 1
cmp ebp, dword [eax + 0xaf0]
jl 0x436b94
cmp dword [eax + 0xaf8], 0
jle 0x436ec4
xor ebp, ebp
mov dword [esp + 0x18], 2
nop
xor edi, edi
cmp dword [esp + 0x14], edi
jle 0x436ea3
mov eax, dword [esp + 0x18]
add eax, 0xffffffff
mov dword [esp + 0x20], eax
lea ebx, [esp + 0x57]
jmp 0x436cd0
push esi
push ebx
call fcn.00452b30
add esp, 8
cmp eax, dword [esp + 0x20]
je 0x436cf1
add edi, 1
add ebx, 0xb
cmp edi, dword [esp + 0x14]
jl 0x436cd0
jmp 0x436ea3
imul edi, edi, 0xb
lea edi, [esp + edi + 0x54]
lea ecx, [edi + 8]
push esi
push ecx
call fcn.00452a80
mov edx, dword [esp + 0x18]
sub eax, 0x96
push esi
push edi
mov dword [edx + ebp + 0x1474], eax
call fcn.00452b30
mov ecx, dword [esp + 0x20]
add eax, 0xb0
shl eax, 4
mov edx, dword [eax + ecx]
push esi
push edi
mov dword [esp + 0x38], edx
call fcn.00452b30
mov ecx, dword [esp + 0x28]
shl eax, 4
mov ebx, dword [eax + ecx + 0xb04]
add ebx, dword [esp + 0x38]
lea edx, [edi + 3]
push esi
push edx
call fcn.00452b30
add esp, 0x20
cmp eax, ebx
jne 0x436dcf
lea eax, [esp + 0x54]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], eax
cmp byte [eax + 3], 0xa2
jne 0x436d87
push esi
push eax
call fcn.00452b30
push esi
push edi
mov ebx, eax
call fcn.00452b30
add esp, 0x10
cmp ebx, eax
je 0x436da4
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
add ecx, 1
add eax, 0xb
cmp ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
jl 0x436d66
jmp 0x436e30
mov eax, dword [esp + 0x1c]
imul eax, eax, 0xb
lea eax, [esp + eax + 0x5c]
push esi
push eax
call fcn.00452a80
mov ecx, eax
mov eax, dword [esp + 0x18]
add esp, 8
sub ecx, dword [eax + ebp + 0x1474]
mov dword [eax + ebp + 0x147c], ecx
jmp 0x436e30
lea edx, [esp + 0x57]
xor ebx, ebx
mov dword [esp + 0x1c], edx
lea esp, [esp]
mov eax, dword [esp + 0x1c]
push esi
push eax
call fcn.00452b30
add esp, 8
cmp eax, dword [esp + 0x18]
je 0x436e04
add dword [esp + 0x1c], 0xb
add ebx, 1
cmp ebx, dword [esp + 0x14]
jl 0x436de0
jmp 0x436e30
imul ebx, ebx, 0xb
lea ecx, [esp + ebx + 0x5c]
push esi
push ecx
call fcn.00452a80
mov edx, eax
mov eax, dword [esp + 0x18]
mov ecx, 0xffffff6a
sub ecx, dword [eax + ebp + 0x1474]
add esp, 8
add edx, ecx
mov dword [eax + ebp + 0x147c], edx
mov edx, dword [esp + 0x10]
mov dword [edx + ebp + 0x1488], 0
test byte [edi + 1], 4
je 0x436e7f
push esi
push edi
call fcn.00452b30
mov ecx, eax
mov eax, dword [esp + 0x18]
shl ecx, 4
add esp, 8
test dword [ecx + eax + 0xb0c], 0x2000
je 0x436e72
or dword [eax + ebp + 0x1488], 0x8000
jmp 0x436ea3
or dword [eax + ebp + 0x1488], 0x4000
jmp 0x436ea3
mov eax, dword [esp + 0x10]
or dword [eax + ebp + 0x1488], 0x2000
test byte [edi + 1], 1
je 0x436ea3
mov eax, dword [esp + 0x10]
or dword [eax + ebp + 0x1488], 0x20000
mov eax, dword [esp + 0x18]
add eax, 1
lea edx, [eax - 2]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
add ebp, 0x44
cmp edx, dword [eax + 0xaf8]
jl 0x436cb0
mov dword [eax + 0xaa8], 0
mov eax, dword [esp + 0x14]
test eax, eax
mov ebx, 1
jle 0x437077
lea ebp, [esp + 0x58]
mov dword [esp + 0x20], eax
jmp 0x436ef0
cmp byte [ebp - 1], 0xb0
jne 0x43706a
lea edi, [ebp - 4]
push esi
push edi
call fcn.00452b30
mov ecx, dword [esp + 0x18]
add esp, 8
cmp eax, dword [ecx + 0xaf0]
push esi
jne 0x43702d
push ebp
call fcn.00452a80
add esp, 8
test eax, eax
je 0x43706a
mov dl, byte [ebp]
cmp dl, 0xff
je 0x43706a
mov cl, byte [ebp + 1]
cmp cl, 0xff
je 0x43706a
mov al, byte [ebp + 2]
cmp al, 0xff
je 0x43706a
cmp dl, 0xa5
je 0x43706a
cmp cl, 0xa5
je 0x43706a
cmp al, 0xa5
je 0x43706a
mov edx, dword [esp + 0x10]
push esi
push edi
mov dword [edx + 0xaa8], ebx
call fcn.00452b30
mov ecx, dword [esp + 0x18]
shl eax, 4
and dword [eax + ecx + 0xb0c], 0xfffffdff
lea eax, [eax + ecx + 0xb0c]
push esi
push edi
call fcn.00452b30
mov edx, dword [esp + 0x20]
shl eax, 4
or dword [eax + edx + 0xb0c], 0x100
lea eax, [eax + edx + 0xb0c]
mov eax, dword [esp + 0x20]
add dword [eax + 0xaf0], ebx
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xaf0]
mov edx, dword [eax + 0xaf8]
add ecx, 0xb0
shl ecx, 4
mov dword [ecx + eax], edx
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xaf0]
shl ecx, 4
mov dword [ecx + eax + 0xb04], ebx
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0xaf0]
shl edx, 4
mov dword [edx + eax + 0xb0c], 0x100
mov eax, dword [esp + 0x20]
add dword [eax + 0xaf8], ebx
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0xaf8]
mov edx, eax
shl edx, 4
add esp, 0x10
add edx, eax
mov dword [ecx + edx*4 + 0x1444], 0x1000
jmp 0x43706a
push edi
call fcn.00452b30
mov ecx, dword [esp + 0x18]
shl eax, 4
and dword [eax + ecx + 0xb0c], 0xfffffdff
lea eax, [eax + ecx + 0xb0c]
push esi
push edi
call fcn.00452b30
mov edx, dword [esp + 0x20]
shl eax, 4
lea eax, [eax + edx + 0xb0c]
add esp, 0x10
or dword [eax], 0x100
add ebp, 0xb
sub dword [esp + 0x20], ebx
jne 0x436ef0
mov ecx, dword [esp + 0x10]
xor edi, edi
cmp dword [ecx + 0xaf8], edi
mov dword [esp + 0x14], edi
jle 0x437214
lea ecx, [ecx]
mov eax, edi
shl eax, 4
add eax, edi
add eax, eax
add eax, eax
test dword [eax + ecx + 0x1488], 0x1000
jne 0x4371fd
test edi, edi
jne 0x4370c6
mov edx, dword [ecx + 0x1474]
add edx, 0x96
mov dword [ecx + 0x1490], edx
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0xaf8]
sub edx, ebx
cmp edi, edx
jne 0x4370e2
add dword [eax + ecx + 0x147c], 0xffffff6a
jmp 0x4371f9
mov edx, dword [ecx + 0xaf0]
xor ebx, ebx
test edx, edx
jle 0x43710e
add edi, 1
lea esi, [ecx + 0xb14]
mov ebp, dword [esi - 4]
add ebp, dword [esi]
cmp ebp, edi
jg 0x43710a
add ebx, 1
add esi, 0x10
cmp ebx, edx
jl 0x4370f7
mov edi, dword [esp + 0x14]
xor esi, esi
test edx, edx
jle 0x437139
lea edi, [ecx + 0xb14]
lea ebx, [ebx]
mov ebp, dword [edi - 4]
add ebp, dword [edi]
cmp ebp, dword [esp + 0x14]
jg 0x437135
add esi, 1
add edi, 0x10
cmp esi, edx
jl 0x437120
mov edi, dword [esp + 0x14]
cmp esi, ebx
jne 0x4371d2
mov edx, dword [eax + ecx + 0x1488]
mov esi, 0x2000
and edx, esi
je 0x43717d
test dword [eax + ecx + 0x14cc], esi
jne 0x43717d
add dword [eax + ecx + 0x147c], 0xffffff1f
lea ecx, [eax + ecx + 0x147c]
mov ecx, dword [esp + 0x10]
mov dword [eax + ecx + 0x14d4], 0xe1
jmp 0x4371f9
test edx, edx
jne 0x4371fd
test dword [eax + ecx + 0x14cc], esi
je 0x4371ad
add dword [eax + ecx + 0x147c], 0xffffff6a
mov edx, dword [esp + 0x10]
lea ecx, [eax + ecx + 0x147c]
mov dword [eax + edx + 0x14d4], 0x96
jmp 0x4371f9
test edx, edx
jne 0x4371fd
test dword [eax + ecx + 0x14cc], esi
jne 0x4371fd
add dword [eax + ecx + 0x147c], 0xffffff6a
lea ecx, [eax + ecx + 0x147c]
mov ecx, dword [esp + 0x10]
jmp 0x4371ee
add dword [eax + ecx + 0x147c], 0xffffff6a
mov ecx, dword [esp + 0x10]
test dword [eax + ecx + 0x14cc], 0x1000
jne 0x4371fd
mov dword [eax + ecx + 0x14d4], 0x96
mov ecx, dword [esp + 0x10]
mov ebx, 1
add edi, ebx
cmp edi, dword [ecx + 0xaf8]
mov dword [esp + 0x14], edi
jl 0x437090
mov edx, dword [ecx + 0xaa8]
sub edx, ebx
neg edx
sbb edx, edx
add edx, 2
mov dword [ecx + 0xaa0], edx
mov eax, dword [esp + 0x10]
mov dword [eax + 0xab4], 0
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xac0], 0xffffffff
or ebp, 0xffffffff
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xa98], ebp
jne 0x437707
mov ecx, dword [eax + 0xaa8]
cmp ecx, ebp
je 0x43726c
mov dword [eax + 0xaa4], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xaf8]
cmp ecx, ebp
je 0x437280
mov dword [eax + 0xaf4], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xaf0]
cmp ecx, ebp
je 0x437294
mov dword [eax + 0xaec], ecx
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xa9c], ebp
jne 0x4372ac
mov edx, dword [eax + 0xaa0]
mov dword [eax + 0xa9c], edx
mov eax, dword [esp + 0x10]
xor esi, esi
cmp dword [eax + 0xaf4], esi
jle 0x43733c
xor ecx, ecx
lea esp, [esp]
mov edx, dword [ecx + eax + 0x1488]
cmp edx, ebp
je 0x4372d6
mov dword [ecx + eax + 0x1484], edx
mov eax, dword [esp + 0x10]
cmp dword [ecx + eax + 0x1474], ebp
je 0x437318
cmp dword [ecx + eax + 0x1470], ebp
je 0x4372f8
mov edx, dword [ecx + eax + 0x1470]
cmp edx, dword [ecx + eax + 0x1474]
jg 0x43730a
mov edx, dword [ecx + eax + 0x1474]
mov dword [ecx + eax + 0x1470], edx
mov eax, dword [esp + 0x10]
cmp dword [ecx + eax + 0x1470], 0
jl 0x437711
mov edx, dword [ecx + eax + 0x1490]
cmp edx, ebp
je 0x43732e
mov dword [ecx + eax + 0x148c], edx
mov eax, dword [esp + 0x10]
add esi, 1
add ecx, 0x44
cmp esi, dword [eax + 0xaf4]
jl 0x4372c0
mov edx, dword [eax + 0xaec]
test edx, edx
mov dword [esp + 0x18], 0
jle 0x4376f9
mov edi, dword [esp + 0x18]
xor esi, esi
mov ebp, 0x20
mov ebx, 0x10
mov ecx, dword [eax + 0xa9c]
test cl, 0x40
je 0x437387
cmp dword [eax + 0xaa4], 0
jne 0x4373d6
cmp edx, 1
jne 0x4373d6
or dword [esi + eax + 0xb18], ebp
jmp 0x4376d7
test ecx, 0x2080
je 0x4373b1
cmp dword [eax + 0xaa4], 0
jne 0x4373d6
cmp edx, 1
jne 0x4373d6
cmp dword [eax + 0xb14], edx
jne 0x4373d6
or dword [esi + eax + 0xb18], ebp
jmp 0x4376d7
test ecx, 0x100
je 0x4373ce
cmp dword [eax + 0xaa4], 0
jne 0x4373d6
or dword [esi + eax + 0xb18], ebp
jmp 0x4376d7
test ecx, 0x200
je 0x4373e2
or dword [esi + eax + 0xb18], ebx
jmp 0x4376d7
test ecx, 0x1000
je 0x4373f6
or dword [esi + eax + 0xb18], ebx
jmp 0x4376d7
test ecx, 0x400
je 0x43740a
or dword [esi + eax + 0xb18], ebx
jmp 0x4376d7
test ecx, 0x800
je 0x43741e
or dword [esi + eax + 0xb18], ebp
jmp 0x4376d7
test ecx, 0x4000
je 0x437432
or dword [esi + eax + 0xb18], ebp
jmp 0x4376d7
test ecx, 0x8000
je 0x43744f
cmp dword [eax + 0xaa4], 0
jne 0x4373d6
or dword [esi + eax + 0xb18], ebp
jmp 0x4376d7
test ecx, 0x10000
je 0x437463
or dword [esi + eax + 0xb18], ebx
jmp 0x4376d7
add edx, 0xffffffff
cmp edi, edx
jne 0x437492
mov ecx, 1
cmp dword [eax + 0xaac], ecx
jne 0x437492
or dword [esi + eax + 0xb18], ecx
mov eax, dword [esp + 0x10]
or dword [esi + eax + 0xb18], 0x8000
jmp 0x4376d7
mov ecx, dword [esi + eax + 0xb1c]
cmp ecx, 0xffffffff
je 0x4374a9
mov dword [esi + eax + 0xb18], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esi + eax + 0xb10]
mov ecx, edx
shl ecx, 4
add ecx, edx
test dword [eax + ecx*4 + 0x1484], 0x1000
jne 0x4376db
mov ecx, dword [esi + eax + 0xb14]
add ecx, edx
mov edi, ecx
shl edi, 4
add edi, ecx
cmp dword [eax + edi*4 + 0x1438], 0xffffffff
je 0x43767c
mov ecx, dword [esi + eax + 0xb14]
add ecx, edx
mov edi, ecx
shl edi, 4
add edi, ecx
cmp dword [eax + edi*4 + 0x1434], 0xffffffff
je 0x43767c
and dword [esi + eax + 0xb18], 0xfffffffe
lea eax, [esi + eax + 0xb18]
mov eax, dword [esp + 0x10]
or dword [esi + eax + 0xb18], 2
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + eax + 0xb14]
add ecx, dword [esi + eax + 0xb10]
mov edx, ecx
shl edx, 4
add edx, ecx
mov edi, dword [eax + edx*4 + 0x1438]
sub edi, dword [eax + edx*4 + 0x1434]
lea ecx, [eax + edx*4]
je 0x437625
mov ecx, dword [esi + eax + 0xb10]
mov edx, ecx
shl edx, 4
add edx, ecx
mov ecx, dword [eax + edx*4 + 0x1484]
test ecx, 0xc000
je 0x437625
mov eax, dword [esp + 0x2d58]
push 0x80000000
push 0x80000000
push ecx
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.00431390
mov ebp, dword [esp + 0x38]
sub edi, 2
add esp, 0x14
neg edi
sbb edi, edi
and edi, 0x96
add edi, 0x14
test edi, edi
jle 0x43760e
jmp 0x4375b0
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + ecx + 0xb10]
lea edx, [eax + 0x4d]
mov ebx, edx
shl ebx, 4
add ebx, edx
mov edx, eax
shl edx, 4
add edx, eax
mov eax, dword [ecx + ebx*4]
add eax, dword [ecx + edx*4 + 0x147c]
push 1
sub eax, edi
push eax
lea ecx, [esp + 0x58]
push ecx
push ebp
call fcn.00431490
add esp, 0x10
test eax, eax
jne 0x4375f6
sub edi, 1
test edi, edi
jg 0x4375b0
jmp 0x43760e
mov eax, dword [esp + 0x10]
and dword [esi + eax + 0xb18], 0xfffffffd
mov eax, dword [esp + 0x10]
or dword [esi + eax + 0xb18], 1
push ebp
call fcn.00431970
mov eax, dword [esp + 0x14]
add esp, 4
mov ebp, 0x20
mov ebx, 0x10
mov edx, dword [esi + eax + 0xb10]
mov ecx, dword [esi + eax + 0xb14]
add ecx, edx
cmp edx, ecx
jge 0x4376db
mov ecx, edx
shl ecx, 4
add ecx, edx
add ecx, ecx
add ecx, ecx
jmp 0x437650
mov edi, dword [ecx + eax + 0x147c]
mov dword [ecx + eax + 0x1478], edi
mov eax, dword [esp + 0x10]
mov edi, dword [esi + eax + 0xb14]
add edi, dword [esi + eax + 0xb10]
add edx, 1
add ecx, 0x44
cmp edx, edi
jl 0x437650
jmp 0x4376db
mov ecx, dword [esi + eax + 0xb14]
add ecx, edx
cmp edx, ecx
jge 0x4376c3
mov ecx, edx
shl ecx, 4
add ecx, edx
add ecx, ecx
add ecx, ecx
mov edi, dword [ecx + eax + 0x147c]
cmp edi, 0xffffffff
je 0x4376ab
mov dword [ecx + eax + 0x1478], edi
mov eax, dword [esp + 0x10]
mov edi, dword [esi + eax + 0xb14]
add edi, dword [esi + eax + 0xb10]
add edx, 1
add ecx, 0x44
cmp edx, edi
jl 0x437694
and dword [esi + eax + 0xb18], 0xfffffffe
mov eax, dword [esp + 0x10]
or dword [esi + eax + 0xb18], 2
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov edx, dword [eax + 0xaec]
add edi, 1
add esi, ebx
cmp edi, edx
mov dword [esp + 0x18], edi
jl 0x437362
or ebp, 0xffffffff
mov dword [eax + 0xa98], 1
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xa9c]
cmp edx, ebp
jne 0x437728
push eax
mov esi, 0x1a
call fcn.004528c0
mov edi, dword [esp + 0x30]
add esp, 4
jmp 0x434aae
xor edi, edi
cmp dword [esp + 0x30], edi
je 0x4381d8
cmp dword [eax + 0xabc], ebp
jne 0x4381d8
cmp dword [eax + 0xaa4], edi
je 0x4381ce
mov ecx, dword [eax + 0x2fc]
cmp ecx, 1
je 0x4381ce
cmp ecx, 0x41
je 0x4381ce
cmp ecx, 0x4040
je 0x4381ce
mov ecx, dword [eax + 0xab4]
cmp ecx, edi
je 0x437996
test edx, 0x1c000
je 0x437996
test edx, 0x10000
push 0x1000
push 0xcc
je 0x43789c
lea edx, [esp + 0x58]
push edx
call fcn.00481440
lea eax, [esp + 0x50]
push eax
call fcn.004529d0
lea ecx, [esp + 0x5b]
push 0x22
push ecx
mov byte [esp + 0x5c], 0x51
call fcn.004529e0
mov ecx, dword [esp + 0x28]
push 0x23
push 0x22
lea edx, [esp + 0x70]
push edx
push 1
push 0xa
lea eax, [esp + 0x70]
push eax
add ecx, 4
push ecx
call fcn.0042da90
mov esi, eax
add esp, 0x34
cmp esi, edi
jne 0x43822a
test byte [esp + 0x52], 3
jne 0x437892
lea edx, [esp + 0x44]
push edx
call fcn.004529d0
lea eax, [esp + 0x4f]
push 0x10c
push eax
mov byte [esp + 0x50], 0x23
call fcn.004529e0
mov eax, dword [esp + 0x1c]
push 8
push 0x10c
lea ecx, [esp + 0x64]
push ecx
push 1
push 0xa
lea edx, [esp + 0x64]
push edx
add eax, 4
push eax
call fcn.0042da90
add esp, 0x28
test eax, eax
jne 0x4381d4
movzx eax, byte [esp + 0x53]
shr eax, 3
xor ecx, ecx
cmp eax, edi
lea edx, [esp + 0x54]
jle 0x437870
lea esp, [esp]
test byte [edx + 4], 0xff
je 0x437870
add ecx, 1
add edx, 8
cmp ecx, eax
jl 0x437860
cmp ecx, eax
je 0x4381d4
mov ecx, dword [edx]
push ecx
call fcn.00452a50
mov edx, dword [esp + 0x14]
add esp, 4
mov dword [edx + 0xabc], eax
jmp 0x4381d4
push 0x1000
push 0xcc
lea eax, [esp + 0x58]
push eax
call fcn.00481440
lea ecx, [esp + 0x50]
push ecx
call fcn.004529d0
mov edx, dword [esp + 0x20]
mov byte [esp + 0x54], 0x52
mov byte [esp + 0x55], 1
mov eax, dword [edx + 0xaf4]
push eax
lea ecx, [esp + 0x5a]
push ecx
call fcn.00452a00
lea edx, [esp + 0x63]
push 0x24
push edx
call fcn.004529e0
mov edx, dword [esp + 0x30]
push 0x2d
push 0x24
lea eax, [esp + 0x78]
push eax
push 1
push 0xa
lea ecx, [esp + 0x78]
push ecx
add edx, 4
push edx
call fcn.0042da90
add esp, 0x3c
test eax, eax
je 0x43798d
mov eax, dword [esp + 0x10]
mov dword [eax + 0xabc], edi
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
mov edx, dword [eax + 0xa9c]
mov dword [ecx], edx
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x437933
mov edx, dword [eax + 0xab4]
mov dword [ecx], edx
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x437943
mov edx, dword [eax + 0xaa4]
mov dword [ecx], edx
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x437953
mov edx, dword [eax + 0xabc]
mov dword [ecx], edx
test edi, edi
je case.0x437986.3
mov ecx, dword [eax + 0xa9c]
cmp ecx, 0x100
jg 0x438346
je 0x438323
sub ecx, 1
cmp ecx, 0x7f
ja case.0x437986.3
movzx ecx, byte [ecx + 0x438510]
jmp dword [ecx*4 + 0x4384ec]
mov ecx, dword [esp + 0x68]
jmp 0x43787a
xor edi, edi
xor ebx, ebx
cmp ecx, edi
je 0x437b09
test dl, 7
je 0x437b09
push 0x100
lea eax, [esp + 0x1054]
push 0xff
push eax
call fcn.00481440
lea ecx, [esp + 0x50]
push ecx
call fcn.004529d0
lea edx, [esp + 0x5b]
push 0xfe
push edx
mov byte [esp + 0x5c], 0x5a
mov byte [esp + 0x5e], 5
call fcn.004529e0
mov edx, dword [esp + 0x28]
push 8
push 0xfe
lea eax, [esp + 0x1070]
push eax
push 1
push 0xa
lea ecx, [esp + 0x70]
push ecx
add edx, 4
push edx
call fcn.0042da90
add esp, 0x34
test eax, eax
jne 0x437b05
mov ax, word [esp + 0x1050]
cmp ax, 0xffff
jne 0x437a3e
mov eax, dword [esp + 0x10]
push eax
mov esi, 0x1a
call fcn.004528c0
mov edi, dword [esp + 0x30]
add esp, 4
jmp 0x434aae
cmp ax, di
jne 0x437a5e
mov eax, dword [esp + 0x10]
push eax
mov esi, 0x1a
call fcn.004528c0
mov edi, dword [esp + 0x30]
add esp, 4
jmp 0x434aae
push 0x100
lea eax, [esp + 0x1054]
push eax
lea ecx, [esp + 0x58]
push ecx
mov word [esp + 0x105c], di
call fcn.00481900
mov edx, dword [esp + 0x62]
push edx
call fcn.00452a30
mov cl, byte [esp + eax + 0x6b]
mov dl, byte [esp + eax + 0x6c]
lea esi, [esp + eax + 0x68]
mov al, byte [esi + 2]
and al, 0xf1
and cl, 0xf4
and dl, 0xf8
or al, 1
or cl, 4
or dl, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
mov byte [esi + 4], dl
mov byte [esi + 8], 0
mov eax, dword [esp + 0x66]
push eax
call fcn.00452a30
movzx ecx, byte [esi + 1]
lea edx, [esp + 0x58]
push edx
lea ebx, [eax + ecx + 0xa]
call fcn.004529d0
lea eax, [esp + 0x63]
push ebx
push eax
mov byte [esp + 0x64], 0x55
mov byte [esp + 0x65], 0x10
call fcn.004529e0
mov eax, dword [esp + 0x30]
push 0x19
push ebx
lea ecx, [esp + 0x78]
push ecx
push 2
push 0xa
lea edx, [esp + 0x78]
push edx
add eax, 4
push eax
call fcn.0042da90
add esp, 0x3c
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xab4], edi
je 0x437c8c
test dword [eax + 0xa9c], 0x2180
je 0x437c8c
push 0x100
lea ecx, [esp + 0x1054]
push 0xff
push ecx
call fcn.00481440
lea edx, [esp + 0x50]
push edx
call fcn.004529d0
lea eax, [esp + 0x5b]
push 0xfe
push eax
mov byte [esp + 0x5c], 0x5a
mov byte [esp + 0x5e], 5
call fcn.004529e0
mov eax, dword [esp + 0x28]
push 8
push 0xfe
lea ecx, [esp + 0x1070]
push ecx
push 1
push 0xa
lea edx, [esp + 0x70]
push edx
add eax, 4
push eax
call fcn.0042da90
add esp, 0x34
test eax, eax
jne 0x437c88
mov ax, word [esp + 0x1050]
cmp ax, 0xffff
jne 0x437bb8
mov eax, dword [esp + 0x10]
push eax
mov esi, 0x1a
call fcn.004528c0
mov edi, dword [esp + 0x30]
add esp, 4
jmp 0x434aae
cmp ax, di
jne 0x437bd8
mov eax, dword [esp + 0x10]
push eax
mov esi, 0x1a
call fcn.004528c0
mov edi, dword [esp + 0x30]
add esp, 4
jmp 0x434aae
push 0x100
lea ecx, [esp + 0x1054]
push ecx
lea edx, [esp + 0x58]
push edx
mov word [esp + 0x105c], di
call fcn.00481900
mov eax, dword [esp + 0x62]
push eax
call fcn.00452a30
lea esi, [esp + eax + 0x68]
mov al, byte [esi + 2]
mov cl, al
and cl, 0xf
add esp, 0x10
cmp cl, 1
jne 0x437c88
mov dl, byte [esi + 3]
and al, 0xf2
or al, 2
mov byte [esi + 2], al
mov al, byte [esi + 4]
and dl, 0xf4
and al, 0xf8
or dl, 4
or al, 8
mov byte [esi + 3], dl
mov byte [esi + 4], al
mov byte [esi + 8], 0
mov ecx, dword [esp + 0x56]
push ecx
call fcn.00452a30
movzx edx, byte [esi + 1]
lea ebx, [eax + edx + 0xa]
lea eax, [esp + 0x48]
push eax
call fcn.004529d0
lea ecx, [esp + 0x53]
push ebx
push ecx
mov byte [esp + 0x54], 0x55
mov byte [esp + 0x55], 0x10
call fcn.004529e0
mov ecx, dword [esp + 0x20]
push 0x19
push ebx
lea edx, [esp + 0x68]
push edx
push 2
push 0xa
lea eax, [esp + 0x68]
push eax
add ecx, 4
push ecx
call fcn.0042da90
add esp, 0x2c
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xa9c]
cmp eax, 2
je 0x437d19
cmp eax, 4
je 0x437d19
test eax, 0x1200
jne 0x437d19
lea edx, [esp + 0x44]
push edx
call fcn.004529d0
mov eax, dword [esp + 0x14]
mov byte [esp + 0x48], 0x52
mov byte [esp + 0x49], 1
mov ecx, dword [eax + 0xaf4]
push ecx
lea edx, [esp + 0x4e]
push edx
call fcn.00452a00
lea eax, [esp + 0x57]
push 0x24
push eax
call fcn.004529e0
mov eax, dword [esp + 0x24]
push 0x2d
push 0x24
lea ecx, [esp + 0x6c]
push ecx
push 1
push 0xa
lea edx, [esp + 0x6c]
push edx
add eax, 4
push eax
call fcn.0042da90
add esp, 0x30
test eax, eax
je 0x437dcf
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xabc], 0
jmp 0x43790f
lea edx, [esp + 0x44]
push edx
call fcn.004529d0
lea eax, [esp + 0x4a]
push 0xff
push eax
mov byte [esp + 0x50], 0x52
mov byte [esp + 0x51], 1
call fcn.00452a00
lea ecx, [esp + 0x57]
push 0x24
push ecx
call fcn.004529e0
mov ecx, dword [esp + 0x24]
push 0x2d
push 0x24
lea edx, [esp + 0x6c]
push edx
push 1
push 0xa
lea eax, [esp + 0x6c]
push eax
add ecx, 4
push ecx
call fcn.0042da90
add esp, 0x30
test eax, eax
je 0x437dcf
lea edx, [esp + 0x44]
push edx
call fcn.004529d0
mov eax, dword [esp + 0x14]
mov byte [esp + 0x48], 0x52
mov byte [esp + 0x49], 1
mov ecx, dword [eax + 0xaf4]
push ecx
lea edx, [esp + 0x4e]
push edx
call fcn.00452a00
lea eax, [esp + 0x57]
push 0x24
push eax
call fcn.004529e0
mov eax, dword [esp + 0x24]
push 0x2d
push 0x24
lea ecx, [esp + 0x6c]
push ecx
push 1
push 0xa
lea edx, [esp + 0x6c]
push edx
add eax, 4
push eax
call fcn.0042da90
mov esi, eax
add esp, 0x30
cmp esi, edi
jne 0x43822a
mov ecx, dword [esp + 0x60]
push ecx
call fcn.00452a50
mov edx, dword [esp + 0x14]
mov dword [edx + 0xabc], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xabc]
add esp, 4
cmp ecx, edi
jle 0x437ed6
cmp ecx, 0x17124
jge 0x437ed6
test byte [eax + 0xa9c], 2
je 0x437ed6
push 0x1000
lea eax, [esp + 0x54]
push 0x45
push eax
call fcn.00481440
lea ecx, [esp + 0x50]
push ecx
call fcn.004529d0
lea edx, [esp + 0x5b]
push 0x1000
push edx
mov byte [esp + 0x5c], 0x43
mov byte [esp + 0x5e], 4
mov byte [esp + 0x62], 0
call fcn.004529e0
mov edx, dword [esp + 0x28]
push 0x1e
push 0x1000
lea eax, [esp + 0x70]
push eax
push 1
push 0xa
lea ecx, [esp + 0x70]
push ecx
add edx, 4
push edx
call fcn.0042da90
add esp, 0x34
test eax, eax
jne 0x437ed2
mov ecx, dword [esp + 0x5c]
movzx eax, cl
mov edx, eax
shl edx, 4
sub edx, eax
movzx eax, ch
movzx ecx, byte [esp + 0x5e]
lea eax, [eax + edx*4]
mov edx, eax
imul edx, edx, 0x4b
add edx, ecx
cmp edx, 0x17124
jge 0x437ed2
add eax, 0x12be
imul eax, eax, 0x4b
add eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xabc], eax
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xaec], 1
jne 0x437ec8
add dword [eax + 0xabc], 0xffffe5a2
jmp 0x437ed2
add dword [eax + 0xabc], 0xfffff736
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xabc], edi
jne 0x4380c6
test dword [eax + 0xa9c], 0x10c00
je 0x4380c6
cmp dword [eax + 0xab4], edi
je 0x437fc2
lea edx, [esp + 0x44]
push edx
call fcn.004529d0
lea eax, [esp + 0x4f]
push 0x10c
push eax
mov byte [esp + 0x50], 0x23
call fcn.004529e0
mov eax, dword [esp + 0x1c]
push 8
push 0x10c
lea ecx, [esp + 0x64]
push ecx
push 1
push 0xa
lea edx, [esp + 0x64]
push edx
add eax, 4
push eax
call fcn.0042da90
add esp, 0x28
test eax, eax
jne 0x4380c2
movzx edi, byte [esp + 0x53]
mov eax, dword [esp + 0x10]
shr edi, 3
xor ecx, ecx
test dword [eax + 0xa9c], 0x800
lea esi, [esp + 0x54]
je 0x437f82
test edi, edi
jle 0x437fa0
jmp 0x437f70
test byte [esi + 4], 0xff
je 0x437fa0
add ecx, 1
add esi, 8
cmp ecx, edi
jl 0x437f70
jmp 0x437fa0
test edi, edi
jle 0x437fa0
mov dl, byte [esi + 4]
test dl, 3
jne 0x437f96
and dl, 0xfc
cmp dl, 0x98
je 0x437fa0
add ecx, 1
add esi, 8
cmp ecx, edi
jl 0x437f86
cmp ecx, edi
je 0x4380c6
mov ecx, dword [esi]
push ecx
call fcn.00452a50
mov edx, dword [esp + 0x14]
add esp, 4
mov dword [edx + 0xabc], eax
jmp 0x4380c2
mov eax, dword [esp + 0x6c]
push eax
call fcn.00452a50
mov ecx, dword [esp + 0x6c]
push ecx
mov esi, eax
call fcn.00452a50
add esp, 8
cmp eax, esi
je 0x4380a3
lea edx, [esp + 0x44]
push edx
call fcn.004529d0
lea eax, [esp + 0x4f]
push 0x10c
push eax
mov byte [esp + 0x50], 0x23
call fcn.004529e0
mov eax, dword [esp + 0x1c]
push 8
push 0x10c
lea ecx, [esp + 0x64]
push ecx
push 1
push 0xa
lea edx, [esp + 0x64]
push edx
add eax, 4
push eax
call fcn.0042da90
add esp, 0x28
test eax, eax
jne 0x4380c2
movzx edi, byte [esp + 0x53]
mov eax, dword [esp + 0x10]
shr edi, 3
xor ecx, ecx
test dword [eax + 0xa9c], 0x10800
lea esi, [esp + 0x54]
jne 0x43806c
test edi, edi
jle 0x438080
mov dl, byte [esi + 4]
test dl, 3
jne 0x438060
and dl, 0xfc
cmp dl, 0x98
je 0x438080
add ecx, 1
add esi, 8
cmp ecx, edi
jl 0x438050
jmp 0x438080
test edi, edi
jle 0x438080
test byte [esi + 4], 0xff
je 0x438080
add ecx, 1
add esi, 8
cmp ecx, edi
jl 0x438070
cmp ecx, edi
je 0x4380c6
mov ecx, dword [esi]
push ecx
call fcn.00452a50
mov edx, eax
mov eax, dword [esp + 0x14]
add esp, 4
sub edx, dword [eax + 0x1478]
mov dword [eax + 0xabc], edx
jmp 0x4380c2
mov eax, dword [esp + 0x68]
push eax
call fcn.00452a50
mov ecx, eax
mov eax, dword [esp + 0x14]
add esp, 4
sub ecx, dword [eax + 0x1478]
mov dword [eax + 0xabc], ecx
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xabc], 0
jne 0x43817c
test dword [eax + 0xa9c], 0x100
je 0x43817c
push 0x1000
lea edx, [esp + 0x54]
push 0
push edx
call fcn.00481440
lea eax, [esp + 0x50]
push eax
call fcn.004529d0
lea ecx, [esp + 0x5b]
push 0x10c
push ecx
mov byte [esp + 0x5c], 0x23
call fcn.004529e0
mov ecx, dword [esp + 0x28]
push 8
push 0x10c
lea edx, [esp + 0x70]
push edx
push 1
push 0xa
lea eax, [esp + 0x70]
push eax
add ecx, 4
push ecx
call fcn.0042da90
add esp, 0x34
test eax, eax
jne 0x438178
movzx esi, byte [esp + 0x53]
test esi, esi
lea ecx, [esp + 0x54]
jle 0x43815f
mov dl, byte [ecx + 4]
test dl, 3
jne 0x438155
cmp dl, 0x4c
je 0x43815f
add eax, 8
add ecx, 8
cmp eax, esi
jl 0x438148
cmp eax, esi
je 0x438178
mov edx, dword [ecx]
push edx
call fcn.00452a50
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [ecx + 0xabc], eax
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xab4], 0
je 0x4381d8
test ebx, ebx
je 0x4381d8
lea edx, [esp + 0x44]
push edx
call fcn.004529d0
lea eax, [esp + 0x4f]
push ebx
push eax
mov byte [esp + 0x50], 0x55
mov byte [esp + 0x51], 0x10
call fcn.004529e0
mov eax, dword [esp + 0x1c]
push 0x19
push ebx
lea ecx, [esp + 0x1064]
push ecx
push 2
push 0xa
lea edx, [esp + 0x64]
push edx
add eax, 4
push eax
call fcn.0042da90
add esp, 0x28
jmp 0x4381d4
mov dword [eax + 0xabc], edi
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xaa4], 1
jne 0x437913
cmp dword [eax + 0xac0], ebp
lea edx, [eax + 0xac0]
jne 0x437913
mov ecx, dword [eax + 0x2fc]
cmp ecx, 1
je 0x437913
cmp ecx, 0x41
je 0x437913
mov ecx, dword [eax + 0xaf4]
push edx
push ecx
push eax
call fcn.004530d0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x43790f
mov eax, dword [esp + 0x10]
push eax
call fcn.004528c0
mov edi, dword [esp + 0x30]
add esp, 4
jmp 0x434aae
mov edx, dword [str.CD_ROM]
mov dword [edi], edx
mov cx, word [0x49ff28]
mov word [edi + 4], cx
mov dl, byte [0x49ff2a]
mov byte [edi + 6], dl
xor esi, esi
jmp 0x434ab2
mov ecx, dword [str.CD_R]
mov dword [edi], ecx
mov dl, byte [0x4a0260]
mov byte [edi + 4], dl
xor esi, esi
jmp 0x434ab2
mov ecx, dword [str.CD_RW]
mov dword [edi], ecx
mov dx, word [0x4a0258]
mov word [edi + 4], dx
xor esi, esi
jmp 0x434ab2
mov ecx, dword [str.DDCD_ROM]
mov dword [edi], ecx
mov edx, dword [0x4a024c]
mov dword [edi + 4], edx
mov cl, byte [0x4a0250]
mov byte [edi + 8], cl
xor esi, esi
jmp 0x434ab2
mov edx, dword [str.DDCD_R]
mov dword [edi], edx
mov cx, word [0x4a0244]
mov word [edi + 4], cx
mov dl, byte [0x4a0246]
mov byte [edi + 6], dl
xor esi, esi
jmp 0x434ab2
mov ecx, dword [str.DDCD_RW]
mov dword [edi], ecx
mov edx, dword [0x4a023c]
mov dword [edi + 4], edx
xor esi, esi
jmp 0x434ab2
mov ecx, dword [str.DVD_ROM]
mov dword [edi], ecx
mov edx, dword [0x4a0234]
mov dword [edi + 4], edx
xor esi, esi
jmp 0x434ab2
mov ecx, dword [str.DVD_R]
mov dword [edi], ecx
mov dx, word [0x4a022c]
mov word [edi + 4], dx
xor esi, esi
jmp 0x434ab2
mov ecx, dword [str.DVD_RW]
mov dword [edi], ecx
mov dx, word [0x4a0224]
mov word [edi + 4], dx
mov cl, byte [0x4a0226]
mov byte [edi + 6], cl
xor esi, esi
jmp 0x434ab2
cmp ecx, 0x2000
jg 0x438419
je 0x4383f8
cmp ecx, 0x800
jg 0x4383cb
je 0x4383b3
cmp ecx, 0x200
je 0x438399
cmp ecx, 0x400
jne case.0x437986.3
mov edx, dword [str.DVDRW]
mov dword [edi], edx
mov cx, word [0x4a021c]
mov word [edi + 4], cx
mov dl, byte [0x4a021e]
mov byte [edi + 6], dl
xor esi, esi
jmp 0x434ab2
mov ecx, dword [str.DVDR]
mov dword [edi], ecx
mov dx, word [0x4a0214]
mov word [edi + 4], dx
xor esi, esi
jmp 0x434ab2
mov ecx, dword [str.DVD_RAM]
mov dword [edi], ecx
mov edx, dword [0x4a020c]
mov dword [edi + 4], edx
xor esi, esi
jmp 0x434ab2
cmp ecx, 0x1000
jne case.0x437986.3
mov ecx, dword [str.DVDR_DL]
mov dword [edi], ecx
mov edx, dword [0x4a0200]
mov dword [edi + 4], edx
mov cl, byte [0x4a0204]
mov byte [edi + 8], cl
xor esi, esi
jmp 0x434ab2
mov edx, dword [str.DVD_R_DL]
mov dword [edi], edx
mov ecx, dword [0x4a01f4]
mov dword [edi + 4], ecx
mov dl, byte [0x4a01f8]
mov byte [edi + 8], dl
xor esi, esi
jmp 0x434ab2
cmp ecx, 0x4000
je 0x438463
cmp ecx, 0x8000
je 0x43844b
cmp ecx, 0x10000
jne case.0x437986.3
mov ecx, dword [str.BD_RE]
mov dword [edi], ecx
mov dx, word [0x4a01ec]
mov word [edi + 4], dx
xor esi, esi
jmp 0x434ab2
mov ecx, dword [str.BD_R]
mov dword [edi], ecx
mov dl, byte [0x4a01e4]
mov byte [edi + 4], dl
xor esi, esi
jmp 0x434ab2
mov ecx, dword [str.BD_ROM]
mov dword [edi], ecx
mov dx, word [0x4a01dc]
mov word [edi + 4], dx
mov cl, byte [0x4a01de]
mov byte [edi + 6], cl
xor esi, esi
jmp 0x434ab2
mov esi, 0x1d
jmp 0x434ab2