Function at 0x529639
Capabilities:
Inspect section memory permissions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x84
push esi
push edi
mov edi, dword [ebp + 0xc]
xor eax, eax
push edi
mov esi, ebx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], eax
call fcn.0052955a
xor ax, ax
mov ecx, ebx
call fcn.0052811b
push edi
push dword [ebp + 8]
push ebx
call fcn.00528774
push edi
lea esi, [ebp - 0x30]
call fcn.00527e16
test eax, eax
mov eax, dword [ebp - 0x30]
jl 0x52976e
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov esi, eax
test esi, esi
mov dword [ebp - 0x28], esi
je 0x5296a1
mov eax, dword [esi + 0x24]
test eax, eax
je 0x5296a1
add eax, esi
mov dword [ebp - 0x3c], eax
jmp 0x5296a8
mov dword [ebp - 0x3c], 0x425040
mov eax, dword [edi]
mov dword [ebp - 0x18], eax
lea eax, [edi + 4]
mov ecx, ebx
mov dword [ebp - 8], eax
call fcn.0052813d
mov ax, 1
mov ecx, ebx
call fcn.0052811b
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xfffe0201
mov edx, 0xffff0000
jne 0x5296dc
push 0x409228
jmp 0x529725
cmp ecx, 0xfffe02ff
jne 0x5296eb
push 0x409218
jmp 0x529725
cmp ecx, 0xfffe03ff
jne 0x5296fa
push 0x409208
jmp 0x529725
cmp ecx, 0xffff0201
jne 0x529709
push 0x4091fc
jmp 0x529725
cmp ecx, 0xffff02ff
jne 0x529718
push 0x4091ec
jmp 0x529725
cmp ecx, 0xffff03ff
jne 0x52972f
push 0x4091dc
mov ecx, ebx
call fcn.005280c9
pop ecx
jmp 0x5297a0
mov eax, ecx
and eax, edx
cmp eax, 0x54580000
je 0x52a75c
cmp eax, 0xfffe0000
je 0x529789
cmp eax, edx
je 0x52977a
mov ecx, ebx
call fcn.0052813d
xor ax, ax
mov ecx, ebx
call fcn.0052811b
push 0x4091a4
mov ecx, ebx
call fcn.005280c9
pop ecx
mov ecx, ebx
call fcn.0052813d
mov dword [ebp - 0x38], 0x80004005
jmp 0x52a767
movzx eax, cl
push eax
movzx eax, ch
push eax
push 0x409194
jmp 0x529796
movzx eax, cl
push eax
movzx eax, ch
push eax
push 0x409184
mov ecx, ebx
call fcn.005280c9
add esp, 0xc
xor eax, eax
cmp esi, eax
mov dword [ebp + 8], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], eax
je 0x5297e2
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x20]
add eax, esi
mov dword [ebp - 0x54], eax
mov eax, dword [esi + 0x14]
add ecx, esi
lea eax, [ecx + eax*8]
mov dword [ebp - 0x50], eax
mov eax, dword [esi + 0x1c]
imul eax, eax, 0x14
add edx, esi
add eax, edx
mov edi, ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x24], edi
jmp 0x5297e5
mov edi, dword [ebp - 0x24]
and dword [ebp - 0x20], 0
and dword [ebp - 0x34], 0
mov dword [ebp - 0x44], 0xffff
jmp 0x52a6c9
cmp dword [ebp - 0xc], 0xfffe
jne 0x529873
shr eax, 0x10
add ecx, 4
test eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 8], ecx
je 0x52a6cc
cmp dword [ecx], 0x54584554
jne 0x529865
xor ax, ax
mov ecx, ebx
call fcn.0052811b
cmp dword [ebp - 0x10], 0
jbe 0x529846
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
push 0x409180
mov ecx, ebx
call fcn.005280c9
dec dword [ebp - 0x1c]
pop ecx
jne 0x529834
mov eax, dword [ebp - 8]
add eax, 4
push eax
push 0x409174
mov ecx, ebx
call fcn.005280c9
pop ecx
pop ecx
mov ecx, ebx
call fcn.0052813d
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
lea ecx, [ecx + eax*4]
mov dword [ebp - 8], ecx
jmp 0x52a6cc
test esi, esi
je 0x5299d1
cmp edi, dword [ebp - 0x50]
jae 0x5299d1
sub ecx, dword [ebp + 0xc]
mov eax, dword [edi + 4]
sar ecx, 2
shr eax, 2
cmp ecx, eax
mov dword [ebp - 0x14], ecx
jne 0x5299b7
movzx eax, word [edi + 2]
cmp ax, word [ebp - 0x44]
je 0x529921
cmp ax, 0xffff
je 0x529912
push 0x408a00
mov ecx, ebx
call fcn.005280c9
pop ecx
mov ax, 1
mov ecx, ebx
call fcn.0052811b
push 0x40916c
mov ecx, ebx
call fcn.005280c9
pop ecx
mov ecx, ebx
call fcn.0052813d
mov ax, 3
mov ecx, ebx
call fcn.0052811b
movzx eax, word [edi + 2]
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx + eax*4]
add eax, esi
push eax
movzx eax, word [edi]
push eax
push 0x409160
mov ecx, ebx
call fcn.005280c9
add esp, 0xc
mov ecx, ebx
call fcn.0052813d
movzx eax, word [edi]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x34], eax
movzx eax, word [edi + 2]
mov dword [ebp - 0x44], eax
movzx eax, word [edi]
jmp 0x5299b4
movzx eax, word [edi]
cmp ax, word [ebp - 0x20]
je 0x5299b7
movzx edx, word [ebp - 0x20]
movzx ecx, ax
lea esi, [edx + 2]
cmp ecx, esi
jg 0x529955
lea esi, [ecx + 2]
cmp esi, edx
jl 0x529955
movzx edx, word [ebp - 0x34]
lea esi, [edx + 0xa]
cmp ecx, esi
jg 0x529955
add ecx, 0xa
cmp ecx, edx
jge 0x5299ae
push 0x408a00
mov ecx, ebx
call fcn.005280c9
pop ecx
mov ax, 1
mov ecx, ebx
call fcn.0052811b
push 0x40916c
mov ecx, ebx
call fcn.005280c9
pop ecx
mov ecx, ebx
call fcn.0052813d
mov ax, 3
mov ecx, ebx
call fcn.0052811b
movzx eax, word [edi]
push eax
push 0x40915c
mov ecx, ebx
call fcn.005280c9
pop ecx
pop ecx
mov ecx, ebx
call fcn.0052813d
movzx eax, word [edi]
movzx ecx, ax
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x14]
movzx eax, ax
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 4]
shr eax, 2
cmp ecx, eax
jb 0x5299d1
mov eax, dword [edi + 0xc]
add edi, 8
shr eax, 2
cmp ecx, eax
jae 0x5299c1
mov dword [ebp - 0x24], edi
cmp dword [ebp - 0x10], 0
je 0x529a0a
mov eax, dword [ebp - 0xc]
cmp eax, 0x2a
je 0x5299ee
cmp eax, 0x2b
je 0x5299ee
cmp eax, 0x27
je 0x5299ee
cmp eax, 0x1d
jne 0x5299f1
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0
jbe 0x529a0a
mov esi, dword [ebp - 0x10]
push 0x409180
mov ecx, ebx
call fcn.005280c9
dec esi
pop ecx
jne 0x5299fa
mov edi, dword [ebp - 8]
test dword [edi], 0x40000000
mov ecx, ebx
je 0x529a3f
mov ax, 2
call fcn.0052811b
push 0x409154
mov ecx, ebx
call fcn.005280c9
pop ecx
mov ecx, ebx
call fcn.0052813d
cmp dword [ebp + 8], 0
je 0x529a4a
dec dword [ebp + 8]
jmp 0x529a4a
push 0x408ad4
call fcn.005280c9
pop ecx
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x529aa3
cmp eax, 0x19
je 0x529aa3
cmp eax, 0x1a
je 0x529aa3
cmp eax, 0x1b
je 0x529aa3
cmp eax, 0x1c
je 0x529aa3
cmp eax, 0x1d
je 0x529aa3
cmp eax, 0x1e
je 0x529aa3
cmp eax, 0x26
je 0x529aa3
cmp eax, 0x27
je 0x529aa3
cmp eax, 0x28
je 0x529aa3
cmp eax, 0x29
je 0x529aa3
cmp eax, 0x2a
je 0x529aa3
cmp eax, 0x2b
je 0x529aa3
cmp eax, 0x2c
je 0x529aa3
cmp eax, 0x2d
je 0x529aa3
cmp eax, 0xfffd
je 0x529aa3
xor esi, esi
inc esi
jmp 0x529aa5
xor esi, esi
and dword [ebp - 0x14], 0
test dword [edi], 0x10000000
je 0x529b2f
test esi, esi
mov edi, dword [ebp - 8]
je 0x529abd
add edi, 8
jmp 0x529ac0
add edi, 4
test dword [edi], 0x80000000
je 0x529b2f
mov ax, 2
mov ecx, ebx
call fcn.0052811b
push 0x409150
mov ecx, ebx
call fcn.005280c9
mov eax, dword [edi]
and eax, 0xf000000
cmp eax, 0xd000000
pop ecx
jne 0x529afb
push 0x40914c
mov ecx, ebx
call fcn.005280c9
pop ecx
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x18]
push 0
push dword [edi]
push ebx
call fcn.005281f8
mov edi, dword [edi]
push ebx
call fcn.00528154
push 0x409148
mov ecx, ebx
call fcn.005280c9
pop ecx
mov ecx, ebx
call fcn.0052813d
mov dword [ebp - 0x14], 1
cmp dword [ebp - 0x14], 0
mov edi, dword [ebp + 8]
je 0x529b3b
inc dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov eax, 0xfffd
cmp ecx, eax
ja case.0x529b5a.49
je 0x529f7d
cmp ecx, 0x60
ja case.0x529b5a.49
jmp dword [ecx*4 + 0x52a77d]
push 0x409144
jmp 0x529f89
push 0x409140
jmp 0x529f89
push 0x409138
jmp 0x529f89
push 0x409130
jmp 0x529f89
push 0x409128
jmp 0x529f89
push 0x409124
mov ecx, ebx
call fcn.005280c9
movzx eax, word [ebp - 0x18]
cmp eax, 0x2000
pop ecx
jb 0x529f91
inc dword [ebp + 8]
jmp 0x529f91
push 0x408cac
mov ecx, ebx
call fcn.005280c9
inc dword [ebp + 8]
jmp 0x529f90
push 0x40911c
jmp 0x529bbc
push 0x408c80
jmp 0x529bbc
push 0x409118
jmp 0x529bbc
push 0x409114
jmp 0x529bbc
push 0x408c70
jmp 0x529bbc
push 0x408cb4
jmp 0x529bbc
push 0x408c8c
jmp 0x529bbc
push 0x409110
jmp 0x529bbc
push 0x40910c
jmp 0x529bbc
push 0x408c74
jmp 0x529bbc
push 0x408c78
jmp 0x529bbc
push 0x409108
jmp 0x529bbc
push 0x409104
jmp 0x529bbc
push 0x409100
jmp 0x529bbc
push 0x4090fc
jmp 0x529bbc
push 0x4090f8
mov ecx, ebx
call fcn.005280c9
add dword [ebp + 8], 3
jmp 0x529f90
push 0x4090f4
mov ecx, ebx
call fcn.005280c9
add dword [ebp + 8], 2
jmp 0x529f90
push 0x4090f0
jmp 0x529c39
push 0x4090ec
jmp 0x529c39
push 0x4090e4
jmp 0x529bbc
push 0x4090dc
jmp 0x529bbc
push 0x4090d8
jmp 0x529bbc
push 0x408c5c
jmp 0x529bbc
push 0x4090d0
jmp 0x529bbc
push 0x4090c8
mov ecx, ebx
call fcn.005280c9
add dword [ebp + 8], 8
jmp 0x529f90
push 0x4090c4
mov ecx, ebx
call fcn.005280c9
movzx eax, word [ebp - 0x18]
cmp eax, 0x2000
pop ecx
jb 0x529baf
add dword [ebp + 8], 3
jmp 0x529f91
push 0x4090c0
mov ecx, ebx
call fcn.005280c9
movzx eax, word [ebp - 0x18]
cmp eax, 0x2000
pop ecx
jb 0x529baf
add dword [ebp + 8], 2
jmp 0x529f91
push 0x4090b8
mov ecx, ebx
call fcn.005280c9
add dword [ebp + 8], 4
jmp 0x529f90
push 0x4090b0
jmp 0x529c39
push 0x4090a8
jmp 0x529d02
push 0x4090a0
jmp 0x529c39
push 0x409098
jmp 0x529c4e
push 0x409090
jmp 0x529c4e
push 0x409088
jmp 0x529c39
push 0x409080
mov ecx, ebx
call fcn.005280c9
add dword [ebp + 8], 3
inc dword [ebp - 0x10]
jmp 0x529f90
push 0x40907c
jmp 0x529bbc
push 0x409074
jmp 0x529c4e
push 0x409070
jmp 0x529d50
push 0x409068
jmp 0x529c4e
push 0x409064
jmp 0x529d50
push 0x40905c
mov ecx, ebx
call fcn.005280c9
inc dword [ebp + 8]
jmp 0x529d5b
push 0x409054
jmp 0x529bbc
push 0x40904c
jmp 0x529bbc
push 0x40904c
jmp 0x529c39
push 0x409044
mov ecx, ebx
call fcn.005280c9
movzx eax, word [ebp - 0x18]
cmp eax, 0x2000
pop ecx
ja 0x529cf4
jmp 0x529baf
push 0x40903c
mov ecx, ebx
call fcn.005280c9
inc dword [ebp - 4]
jmp 0x529f90
push 0x409034
jmp 0x529de4
push 0x409028
jmp 0x529de4
push 0x40901c
jmp 0x529de4
push 0x409010
jmp 0x529de4
push 0x409008
mov ecx, ebx
call fcn.005280c9
add dword [ebp - 4], 2
jmp 0x529f90
push 0x409000
mov ecx, ebx
call fcn.005280c9
inc dword [ebp - 4]
jmp 0x529c55
push 0x408ff4
jmp 0x529de4
push 0x408fe8
jmp 0x529de4
push 0x408fdc
jmp 0x529de4
push 0x408fd0
jmp 0x529de4
push 0x408fc4
jmp 0x529de4
push 0x408fb4
jmp 0x529de4
push 0x408fa4
jmp 0x529de4
push 0x408f9c
jmp 0x529de4
push 0x408f90
jmp 0x529de4
push 0x408f88
jmp 0x529de4
push 0x408f7c
jmp 0x529bbc
push 0x408f78
jmp 0x529c4e
push 0x408f70
jmp 0x529c4e
push 0x408f6c
jmp 0x529c4e
push 0x408f68
jmp 0x529c4e
push 0x408f5c
jmp 0x529f89
push 0x408cbc
mov ecx, ebx
call fcn.005280c9
movzx eax, word [ebp - 0x18]
cmp eax, 0x101
pop ecx
jne 0x529baf
add dword [ebp + 8], 0xa
jmp 0x529f91
push 0x408ca8
jmp 0x529ecb
push 0x408cb8
mov ecx, ebx
call fcn.005280c9
movzx eax, word [ebp - 0x18]
cmp eax, 0x101
pop ecx
jne 0x529baf
jmp 0x529ccf
movzx eax, word [ebp - 0x18]
cmp eax, 0x104
jb 0x529f52
mov eax, dword [ebp - 0x1c]
shl eax, 0x10
cmp eax, 0x10000
je 0x529f48
cmp eax, 0x20000
mov ecx, ebx
je 0x529f3e
push 0x408f54
jmp 0x529de6
push 0x408f4c
jmp 0x529de6
push 0x408f44
jmp 0x529de4
push 0x408f40
jmp 0x529de4
movzx eax, word [ebp - 0x18]
cmp eax, 0x104
mov ecx, ebx
jb 0x529f73
push 0x408f38
jmp 0x529de6
push 0x408f2c
jmp 0x529de6
push 0x408f24
jmp 0x529f89
push 0x408f20
mov ecx, ebx
call fcn.005280c9
pop ecx
mov edx, dword [ebp - 0x18]
mov eax, 0xffff0000
and edx, eax
cmp edx, eax
jne 0x529fb3
movzx eax, word [ebp - 0x18]
cmp eax, 0x200
jae 0x529fb3
cmp dword [ebp + 8], edi
jbe 0x529fb3
inc edi
mov dword [ebp + 8], edi
add dword [ebp - 8], 4
cmp dword [ebp - 0xc], 0x1f
jne 0x52a0bf
mov edi, dword [ebp - 8]
mov eax, dword [edi]
mov ecx, eax
and ecx, 0x78000000
je 0x52a010
cmp ecx, 0x10000000
je 0x52a009
cmp ecx, 0x18000000
je 0x52a000
cmp ecx, 0x20000000
mov ecx, ebx
je 0x529ff9
push 0x408f14
call fcn.005280c9
jmp 0x52a0b8
push 0x408f0c
jmp 0x529fef
push 0x408f04
mov ecx, ebx
jmp 0x529fef
push 0x408f00
jmp 0x52a005
test eax, 0x7fffffff
jne 0x52a023
cmp edx, 0xfffe0000
jne 0x52a0b9
and eax, 0xf
cmp eax, 0xd
ja case.default.0x52a02b
jmp dword [eax*4 + 0x52a901]
push 0x408ef4
jmp 0x52a099
push 0x408ee4
jmp 0x52a099
push 0x408ed4
jmp 0x52a099
push 0x408ecc
jmp 0x52a099
push 0x408ec4
jmp 0x52a099
push 0x408eb8
jmp 0x52a099
push 0x408eac
jmp 0x52a099
push 0x408ea0
jmp 0x52a099
push 0x408e94
jmp 0x52a099
push 0x408e88
jmp 0x52a099
push 0x408e80
jmp 0x52a099
push 0x408e78
jmp 0x52a099
push 0x408e70
jmp 0x52a099
push 0x408e68
jmp 0x52a099
push 0x408f14
mov ecx, ebx
call fcn.005280c9
movzx eax, byte [edi + 2]
and eax, 0xf
pop ecx
je 0x52a0b9
push eax
push 0x4080a0
mov ecx, ebx
call fcn.005280c9
pop ecx
pop ecx
add edi, 4
mov dword [ebp - 8], edi
cmp dword [ebp - 0xc], 0x29
je 0x52a0d1
cmp dword [ebp - 0xc], 0x2d
je 0x52a0d1
cmp dword [ebp - 0xc], 0x5e
jne 0x52a116
mov eax, dword [ebp - 0x1c]
dec eax
je 0x52a109
dec eax
je 0x52a102
dec eax
je 0x52a0fb
dec eax
je 0x52a0f4
dec eax
je 0x52a0ed
dec eax
jne 0x52a116
push 0x408e64
jmp 0x52a10e
push 0x408e60
jmp 0x52a10e
push 0x408e5c
jmp 0x52a10e
push 0x408e58
jmp 0x52a10e
push 0x408e54
jmp 0x52a10e
push 0x408e50
mov ecx, ebx
call fcn.005280c9
pop ecx
and dword [ebp - 0x1c], 0
test esi, esi
je 0x52a262
mov eax, dword [ebp - 8]
mov edi, dword [eax]
test edi, edi
jns 0x52a262
mov eax, edi
shr eax, 0x18
and eax, 0xf
dec eax
je 0x52a16e
dec eax
je 0x52a167
dec eax
je 0x52a160
sub eax, 0xa
je 0x52a159
dec eax
je 0x52a152
dec eax
jne 0x52a17b
push 0x408e4c
jmp 0x52a173
push 0x408e48
jmp 0x52a173
push 0x408e44
jmp 0x52a173
push 0x408e40
jmp 0x52a173
push 0x408e3c
jmp 0x52a173
push 0x408e38
mov ecx, ebx
call fcn.005280c9
pop ecx
test edi, 0x100000
je 0x52a190
push 0x408e30
mov ecx, ebx
call fcn.005280c9
pop ecx
test edi, 0x200000
je 0x52a1a5
push 0x408e2c
mov ecx, ebx
call fcn.005280c9
pop ecx
test edi, 0x400000
je 0x52a1ba
push 0x408e20
mov ecx, ebx
call fcn.005280c9
pop ecx
push 0x40809c
mov ecx, ebx
call fcn.005280c9
pop ecx
mov ax, 2
mov ecx, ebx
call fcn.0052811b
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x18]
push 0
push edi
push ebx
call fcn.005281f8
mov eax, 0xf0000
mov ecx, edi
and ecx, eax
cmp ecx, eax
je 0x52a250
push 0x408920
mov ecx, ebx
call fcn.005280c9
test edi, 0x10000
pop ecx
je 0x52a211
push 0x40891c
mov ecx, ebx
call fcn.005280c9
pop ecx
test edi, 0x20000
je 0x52a226
push 0x408918
mov ecx, ebx
call fcn.005280c9
pop ecx
test edi, 0x40000
je 0x52a23b
push 0x408914
mov ecx, ebx
call fcn.005280c9
pop ecx
test edi, 0x80000
je 0x52a250
push 0x408910
mov ecx, ebx
call fcn.005280c9
pop ecx
mov ecx, ebx
call fcn.0052813d
add dword [ebp - 8], 4
mov dword [ebp - 0x1c], 1
cmp dword [ebp - 0x14], 0
je 0x52a26c
add dword [ebp - 8], 4
cmp dword [ebp - 0xc], 0x51
mov esi, 0x408e1c
jne 0x52a2c7
push 4
pop edi
mov ax, 2
mov ecx, ebx
call fcn.0052811b
push esi
mov ecx, ebx
call fcn.005280c9
pop ecx
mov ecx, ebx
call fcn.0052813d
mov ax, 3
mov ecx, ebx
call fcn.0052811b
mov eax, dword [ebp - 8]
fld dword [eax]
push ecx
push ecx
fstp qword [esp]
push 0x408e14
mov ecx, ebx
call fcn.005280c9
add esp, 0xc
mov ecx, ebx
call fcn.0052813d
add dword [ebp - 8], 4
dec edi
jne 0x52a27a
cmp dword [ebp - 0xc], 0x30
jne 0x52a317
push 4
pop edi
mov ax, 2
mov ecx, ebx
call fcn.0052811b
push esi
mov ecx, ebx
call fcn.005280c9
pop ecx
mov ecx, ebx
call fcn.0052813d
mov ax, 3
mov ecx, ebx
call fcn.0052811b
mov eax, dword [ebp - 8]
push dword [eax]
mov ecx, ebx
push 0x408e10
call fcn.005280c9
pop ecx
pop ecx
mov ecx, ebx
call fcn.0052813d
add dword [ebp - 8], 4
dec edi
jne 0x52a2d0
cmp dword [ebp - 0xc], 0x2f
jne 0x52a4d1
mov ax, 2
mov ecx, ebx
call fcn.0052811b
push esi
mov ecx, ebx
call fcn.005280c9
pop ecx
mov ecx, ebx
call fcn.0052813d
mov ax, 3
mov ecx, ebx
call fcn.0052811b
mov eax, dword [ebp - 8]
cmp dword [eax], 0
mov eax, 0x408aec
jne 0x52a359
mov eax, 0x408ae4
push eax
push 0x4089c4
mov ecx, ebx
call fcn.005280c9
pop ecx
pop ecx
mov ecx, ebx
call fcn.0052813d
add dword [ebp - 8], 4
jmp 0x52a4d1
mov ax, 2
mov ecx, ebx
call fcn.0052811b
xor esi, esi
cmp dword [ebp - 0x1c], esi
mov eax, 0x408e1c
jne 0x52a394
mov eax, 0x40809c
push eax
mov ecx, ebx
call fcn.005280c9
mov eax, dword [ebp - 8]
pop ecx
mov ecx, dword [eax]
test cx, 0x2000
mov dword [ebp - 0x14], ecx
je 0x52a3c7
movzx ecx, word [ebp - 0x18]
cmp ecx, 0x200
jb 0x52a3c2
add eax, 4
mov esi, dword [eax]
mov dword [ebp - 8], eax
jmp 0x52a3c7
mov esi, 0xb0000000
mov edi, dword [ebp - 0x14]
and edi, 0xf000000
cmp edi, 0x1000000
je 0x52a416
cmp edi, 0x3000000
je 0x52a416
cmp edi, 0x5000000
je 0x52a416
cmp edi, 0x6000000
je 0x52a40f
cmp edi, 0x8000000
je 0x52a416
cmp edi, 0xc000000
je 0x52a416
cmp edi, 0xd000000
jne 0x52a423
push 0x40914c
jmp 0x52a41b
push 0x408e0c
jmp 0x52a41b
push 0x408b74
mov ecx, ebx
call fcn.005280c9
pop ecx
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x18]
push esi
push dword [ebp - 0x14]
push ebx
call fcn.005281f8
cmp edi, 0x8000000
ja 0x52a47b
je 0x52a466
cmp edi, 0x2000000
je 0x52a474
cmp edi, 0x3000000
je 0x52a474
cmp edi, 0x4000000
je 0x52a46d
cmp edi, 0x5000000
je 0x52a46d
cmp edi, 0x7000000
jne 0x52a4b6
push 0x408e38
jmp 0x52a4ae
push 0x408e04
jmp 0x52a4ae
push 0x408dfc
jmp 0x52a4ae
cmp edi, 0x9000000
je 0x52a4a9
cmp edi, 0xa000000
je 0x52a4a2
cmp edi, 0xb000000
je 0x52a49b
cmp edi, 0xc000000
jne 0x52a4b6
push 0x408df4
jmp 0x52a4ae
push 0x408df0
jmp 0x52a4ae
push 0x408dec
mov ecx, ebx
call fcn.005280c9
pop ecx
mov edi, dword [ebp - 0x14]
push ebx
call fcn.00528154
add dword [ebp - 8], 4
mov ecx, ebx
mov dword [ebp - 0x1c], 1
call fcn.0052813d
mov eax, dword [ebp - 8]
test dword [eax], 0x80000000
jne 0x52a378
cmp dword [ebp - 0x28], 0
je 0x52a6b6
cmp dword [ebp - 0x40], 0
je 0x52a6b6
mov esi, dword [ebp - 0x24]
sub esi, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x40]
and dword [ebp - 0xc], 0
xor eax, eax
lea edi, [ebp - 0x74]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
sar esi, 3
stosd dword es:[edi], eax
mov eax, dword [ebp - 0x4c]
dec esi
cmp ecx, eax
jae 0x52a5aa
sub eax, ecx
dec eax
push 0x14
lea edi, [ecx + 4]
xor edx, edx
pop ecx
div ecx
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc]
imul ecx, ecx, 0xc
add edx, eax
add ecx, edx
jmp 0x52a543
cmp dword [edx], esi
je 0x52a549
add edx, 0xc
cmp edx, ecx
jb 0x52a53c
jmp 0x52a5a2
add edx, 4
mov dword [ebp - 0x14], edx
xor ecx, ecx
mov edx, dword [ebp - 0x14]
movzx edx, word [edx]
cmp dx, 0xffff
je 0x52a596
mov edx, dword [edi - 4]
test edx, edx
je 0x52a569
add edx, eax
jmp 0x52a56b
xor edx, edx
mov dword [ebp + ecx - 0x64], edx
mov edx, dword [edi]
test edx, edx
je 0x52a579
add edx, eax
jmp 0x52a57b
xor edx, edx
mov dword [ebp + ecx - 0x74], edx
mov edx, dword [ebp - 0x14]
movzx edx, word [edx]
movzx edx, dx
mov dword [ebp + ecx - 0x84], edx
mov dword [ebp - 0xc], 1
add dword [ebp - 0x14], 2
add ecx, 4
cmp ecx, 0x10
jb 0x52a551
add edi, 0x14
dec dword [ebp - 0x1c]
jne 0x52a52d
xor ax, ax
mov ecx, ebx
call fcn.0052811b
xor esi, esi
cmp dword [ebp - 0xc], esi
je 0x52a6af
push 0x408de4
mov ecx, ebx
call fcn.005280c9
xor eax, eax
pop ecx
mov dword [ebp - 0xc], esi
xor edx, edx
mov ecx, dword [ebp + esi - 0x74]
test ecx, ecx
je 0x52a690
mov edi, dword [ebp + esi - 0x64]
cmp eax, edi
jne 0x52a602
cmp edx, ecx
jne 0x52a602
push dword [ebp + esi - 0x84]
mov ecx, ebx
push 0x408de0
call fcn.005280c9
pop ecx
pop ecx
jmp 0x52a681
cmp dword [ebp - 0xc], 0
je 0x52a615
push 0x408ddc
mov ecx, ebx
call fcn.005280c9
pop ecx
test edi, edi
je 0x52a65a
mov edi, dword [ebp - 0x3c]
mov eax, dword [ebp + esi - 0x64]
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x52a63e
test cl, cl
je 0x52a63a
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x52a63e
inc eax
inc eax
inc edi
inc edi
test cl, cl
jne 0x52a620
xor eax, eax
jmp 0x52a643
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x52a667
push dword [ebp + esi - 0x64]
mov ecx, ebx
push 0x408dd4
call fcn.005280c9
pop ecx
jmp 0x52a666
push 0x408dd0
mov ecx, ebx
call fcn.005280c9
pop ecx
push dword [ebp + esi - 0x84]
mov ecx, ebx
push dword [ebp + esi - 0x74]
push 0x408dc8
call fcn.005280c9
add esp, 0xc
mov eax, dword [ebp + esi - 0x64]
mov edx, dword [ebp + esi - 0x74]
mov dword [ebp - 0xc], 1
add esi, 4
cmp esi, 0x10
jb 0x52a5d3
cmp dword [ebp - 0xc], 0
je 0x52a6af
push 0x408dc4
mov ecx, ebx
call fcn.005280c9
pop ecx
mov ecx, ebx
call fcn.0052813d
push 0x408a00
mov ecx, ebx
call fcn.005280c9
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x24]
pop ecx
mov ecx, dword [ebp - 8]
mov eax, dword [ecx]
movzx edx, ax
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 0xffff
movzx edx, byte [ecx + 2]
mov dword [ebp - 0x1c], edx
jne 0x5297f9
push 0x408a00
mov ecx, ebx
call fcn.005280c9
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 4]
pop ecx
mov ecx, ebx
lea edi, [esi + eax]
call fcn.0052813d
xor ax, ax
mov ecx, ebx
call fcn.0052811b
cmp edi, 1
mov eax, 0x425040
je 0x52a71e
mov eax, 0x408cf4
push eax
push edi
push 0x408d98
mov ecx, ebx
call fcn.005280c9
add esp, 0xc
test esi, esi
je 0x52a746
push dword [ebp + 8]
mov ecx, ebx
push esi
push 0x408d78
call fcn.005280c9
add esp, 0xc
push 0x408a00
mov ecx, ebx
call fcn.005280c9
pop ecx
mov ecx, ebx
call fcn.0052813d
jmp 0x52a767
push ebx
mov esi, edi
call fcn.005294c9
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x30]
test eax, eax
pop edi
pop esi
je 0x52a776
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x38]
leave
ret 8