Function at 0x48f400
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x3c
push ebx
mov ebx, ecx
mov eax, ebx
and eax, 0xfffff000
mov dword [esp + 0x18], eax
mov eax, dword [eax]
push esi
mov esi, dword [eax + 0x3c]
lea ecx, [esp + 0x48]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x18], esi
call fcn.004630d0
test al, al
je 0x48f43e
test esi, esi
je 0x48f448
push 1
push ebx
mov ecx, esi
call fcn.0040db60
test eax, eax
jne 0x48f448
pop esi
xor eax, eax
pop ebx
add esp, 0x3c
ret 0xc
push ebp
push edi
mov ecx, esi
call fcn.00497d20
mov ecx, dword [esi + 0x998]
mov dl, byte [ecx + 0x1b1]
lea ecx, [esp + 0x50]
mov dword [esp + 0x28], eax
mov byte [esp + 0x1c], dl
call fcn.00463090
mov ebp, eax
cmp byte [ebx + 0x25], 7
mov dword [esp + 0x48], ebp
jne 0x48f522
mov esi, dword [esp + 0x50]
mov ecx, esi
and ecx, 7
cmp cl, 7
mov eax, esi
jne 0x48f496
mov edx, esi
and edx, 0xfffffff8
mov eax, dword [edx + 4]
and eax, 0xfffffff8
mov eax, dword [eax + 8]
test eax, eax
je 0x48f4a4
mov edi, dword [eax]
jmp 0x48f4a8
mov edi, dword [esp + 0x50]
test eax, eax
je 0x48f4bd
mov ecx, ebx
call fcn.0048c020
cmp eax, edi
jg 0x48f522
push 1
inc edi
push edi
jmp 0x48f51b
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov ecx, dword [edi + 0xa30]
push eax
push ecx
push esi
call fcn.004236a0
add esp, 0xc
test al, al
je 0x48f4eb
mov edx, dword [esp + 0x54]
push 0
push edx
mov ecx, edi
call fcn.004057d0
push eax
jmp 0x48f51b
cmp dword [esp + 0x28], 7
jge 0x48f526
push 0
push 0xa
lea eax, [esp + 0x48]
push eax
push ebp
call fcn.00495320
add esp, 0x10
test eax, eax
je 0x48f522
mov ecx, ebx
call fcn.0048c020
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jg 0x48f522
push 1
inc ecx
push ecx
mov ecx, ebx
call fcn.00490c00
mov esi, dword [esp + 0x50]
mov al, byte [esp + 0x1c]
test al, al
mov ecx, ebx
je 0x48f538
push esi
call fcn.0048bba0
jmp 0x48f540
push 0
push esi
call fcn.0048b9c0
mov edx, eax
xor ebp, ebp
cmp edx, ebp
mov dword [esp + 0x14], edx
mov byte [esp + 0x40], 0
mov byte [esp + 0x12], 0
mov dword [esp + 0x18], ebp
je 0x48f59b
mov ecx, dword [edx + 4]
mov eax, ecx
and eax, 3
test cl, 4
jne 0x48f56b
mov ecx, eax
jmp 0x48f578
mov ecx, dword [edx + 4]
and ecx, 0xfffffff8
mov cx, word [ecx + 6]
or cx, ax
shr cl, 2
test cl, 1
je 0x48fa6f
test byte [esp + 0x58], 0x40
jne 0x48fa6f
pop edi
pop ebp
pop esi
xor eax, eax
pop ebx
add esp, 0x3c
ret 0xc
mov eax, dword [esp + 0x58]
and eax, 0xffbf
test ah, 2
mov dword [esp + 0x58], eax
jne 0x48f686
mov ecx, ebx
call fcn.0048bc80
mov esi, eax
cmp esi, ebp
je 0x48f686
test byte [esi + 0x24], 1
je 0x48f64e
mov al, byte [esp + 0x1c]
test al, al
je 0x48f5e2
mov edx, dword [esp + 0x50]
push edx
mov ecx, esi
call fcn.0048bba0
jmp 0x48f608
mov eax, esi
and eax, 0xfffff000
mov ecx, dword [eax]
mov edx, dword [ecx + 0x3c]
mov eax, dword [edx + 0x998]
movzx ecx, byte [eax + 0x1b1]
mov edx, dword [esp + 0x50]
push ecx
push edx
mov ecx, esi
call fcn.0048b9c0
mov edi, eax
mov eax, dword [esp + 0x50]
push eax
mov ecx, esi
call fcn.0048bfd0
test edi, edi
mov dword [esp + 0x18], eax
je 0x48f64e
test eax, eax
je 0x48f64e
add eax, 8
push eax
lea ecx, [esp + 0x40]
call fcn.00464010
lea ecx, [esp + 0x3c]
call fcn.0044a6e0
test al, al
jne 0x48f64e
mov ecx, edi
call fcn.00485400
test al, al
je 0x48f66a
cmp dword [esp + 0x28], 8
jge 0x48f66a
inc ebp
cmp ebp, 0x100
jge 0x48f678
mov ecx, esi
call fcn.0048bc80
mov esi, eax
test esi, esi
jne 0x48f5c2
jmp 0x48f686
mov dword [esp + 0x14], edi
mov byte [esp + 0x12], 1
jmp 0x48fa6f
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x52c], 1
mov edx, dword [ebx + 0x20]
cmp dword [ebx + 0x1c], edx
jb 0x48f896
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
xor edi, edi
test edx, edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], edi
jbe 0x48f6db
mov ecx, dword [ebx + 0x18]
mov esi, edx
add ecx, 4
mov dword [esp + 0x34], esi
mov eax, dword [ecx]
test al, 4
jne 0x48f6c3
test eax, 0xfffffff8
jmp 0x48f6c9
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x48f6d1
inc edi
add ecx, 8
dec esi
jne 0x48f6b6
mov dword [esp + 0x2c], edi
mov ecx, dword [esp + 0x2c]
mov edi, dword [ebx + 0x18]
lea ebp, [ebx + 0x18]
lea eax, [edx + edx*2]
shl ecx, 2
cmp ecx, eax
mov dword [esp + 0x18], edi
jb 0x48f712
mov ecx, dword [esp + 0x38]
add edx, edx
push 3
mov dword [esp + 0x40], edx
push 3
shl edx, 3
push edx
call fcn.005299d0
mov edi, eax
mov dword [esp + 0x18], edi
jmp 0x48f716
mov dword [esp + 0x3c], edx
mov esi, dword [ebp]
cmp edi, esi
mov dword [esp + 0x14], 0
je 0x48f744
mov eax, dword [esp + 0x2c]
cmp eax, dword [ebx + 0x20]
jne 0x48f744
mov edi, dword [esp + 0x18]
lea ecx, [eax + eax]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x14], eax
jmp 0x48f7f4
mov eax, dword [ebx + 0x20]
xor esi, esi
cmp eax, esi
mov edx, 2
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
jbe 0x48f7c5
mov dword [esp + 0x34], edi
mov ecx, dword [ebp]
mov eax, dword [ecx + esi*8 + 4]
test al, 4
lea ecx, [ecx + esi*8]
jne 0x48f777
test eax, 0xfffffff8
jmp 0x48f77d
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x48f7b9
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
inc edi
mov dword [esp + 0x14], edi
mov edi, eax
add edi, 8
cmp ecx, eax
mov dword [esp + 0x34], edi
je 0x48f7b5
mov edi, dword [ecx]
mov dword [eax], edi
mov edi, dword [ecx + 4]
mov dword [eax + 4], edi
mov dword [ecx], edx
mov edx, dword [esp + 0x30]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
mov eax, dword [ebx + 0x20]
inc esi
cmp esi, eax
jb 0x48f762
mov dword [esp + 0x34], esi
mov eax, edx
and eax, 7
cmp eax, 7
mov ecx, edx
jne 0x48f7dc
and edx, 0xfffffff8
mov ecx, dword [edx + 4]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x48f7e6
and ecx, 0x1f
mov eax, ecx
cmp eax, 6
jne 0x48f7f4
lea ecx, [esp + 0x2c]
call fcn.00463210
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp]
cmp edi, eax
je 0x48f80c
mov ecx, dword [esp + 0x38]
push eax
call fcn.0052a340
test edi, edi
je 0x48f832
mov ecx, ebp
and ecx, 0xfffff000
mov esi, dword [ecx]
mov al, byte [esi + 0x2d]
test al, al
je 0x48f832
push edi
push ebp
mov ecx, esi
call fcn.004225f0
push eax
mov ecx, esi
call fcn.00423650
mov edx, dword [esp + 0x3c]
mov dword [ebp], edi
mov dword [ebx + 0x20], edx
mov edx, dword [ebx + 0x14]
test edx, edx
mov dword [ebx + 0x10], edi
je 0x48f896
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x34]
je 0x48f896
mov ecx, dword [edx + 8]
mov edi, dword [edx + 4]
shl ecx, 2
mov esi, ecx
shr ecx, 2
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
xor esi, esi
rep stosb byte es:[edi], al
mov dword [edx + 0xc], esi
mov eax, dword [ebx + 0x1c]
test eax, eax
jbe 0x48f896
mov edi, dword [esp + 0x1c]
lea ebx, [ebx]
mov ecx, dword [ebp]
push edi
push esi
push ecx
mov ecx, dword [ebx + 0x14]
call fcn.00489c60
mov eax, dword [ebx + 0x1c]
inc esi
cmp esi, eax
jb 0x48f880
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
mov ecx, dword [eax + edx*8]
lea edi, [eax + edx*8]
mov eax, ecx
and eax, 7
cmp eax, 7
mov dword [esp + 0x14], edi
jne 0x48f8bb
and ecx, 0xfffffff8
mov ecx, dword [ecx + 4]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x48f8c5
and ecx, 0x1f
mov eax, ecx
cmp eax, 6
jne 0x48f8d1
mov ecx, edi
call fcn.00463210
mov dword [edi], 2
mov ecx, dword [esp + 0x50]
mov edx, ecx
and edx, 7
cmp dl, 7
jne 0x48f8eb
and ecx, 0xfffffff8
mov ecx, dword [ecx + 4]
mov eax, dword [ebx + 0x18]
and ecx, 0xfffffff8
push ecx
lea esi, [edi + 4]
push esi
push eax
and eax, 0xfffff000
mov ecx, dword [eax]
call fcn.0044b230
cmp word [esp + 0x58], 0
je 0x48f945
movzx eax, word [esp + 0x58]
mov ebp, dword [esi]
mov ecx, eax
and ecx, 3
or ebp, ecx
test eax, 0xfffffffc
mov dword [esi], ebp
mov ecx, ebp
je 0x48f945
test cl, 4
jne 0x48f930
mov ecx, edi
call fcn.0048dff0
mov eax, dword [esi]
mov edx, dword [esp + 0x58]
and eax, 0xfffffff8
add eax, 6
and edx, 0xfffc
or word [eax], dx
mov ecx, dword [ebx + 0x14]
test ecx, ecx
lea ebp, [ebx + 0x14]
je 0x48f966
mov eax, dword [esp + 0x1c]
mov edx, dword [ebx + 0x1c]
push eax
mov eax, dword [ebx + 0x18]
push edx
push eax
call fcn.00489c60
jmp 0x48f9f8
cmp dword [ebx + 0x1c], 8
jb 0x48f9f8
push 0
push ebx
push 0x14
call fcn.0052b400
add esp, 0xc
test eax, eax
je 0x48f98e
push 0x10
mov ecx, eax
call fcn.0048de40
mov edi, eax
jmp 0x48f990
xor edi, edi
test edi, edi
je 0x48f9b6
mov ecx, ebp
and ecx, 0xfffff000
mov esi, dword [ecx]
mov al, byte [esi + 0x2d]
test al, al
je 0x48f9b6
push edi
push ebp
mov ecx, esi
call fcn.004225f0
push eax
mov ecx, esi
call fcn.00423650
mov dword [ebp], edi
mov eax, dword [ebx + 0x20]
xor esi, esi
test eax, eax
jbe 0x48f9f8
mov edi, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx + esi*8 + 4]
test al, 4
jne 0x48f9d8
test eax, 0xfffffff8
jmp 0x48f9de
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x48f9f0
push edi
push esi
push ecx
mov ecx, dword [ebp]
call fcn.00489c60
mov eax, dword [ebx + 0x20]
inc esi
cmp esi, eax
jb 0x48f9c6
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x34]
inc ecx
mov dword [ebx + 0x1c], ecx
mov esi, dword [edx + 8]
test esi, esi
mov byte [esp + 0x40], 1
jne 0x48fa14
mov dword [esp + 0x18], esi
jmp 0x48fa6f
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x3c]
mov eax, dword [edx + 0x998]
mov edx, dword [esp + 0x50]
xor ecx, ecx
mov cl, byte [eax + 0x1b1]
xor ebp, ebp
push ecx
push edx
mov ecx, esi
call fcn.004898c0
mov ecx, dword [esi + 4]
lea eax, [ecx + eax*8]
cmp dword [eax], 0
je 0x48fa48
mov ebp, dword [eax + 4]
test ebp, ebp
mov dword [esp + 0x18], ebp
je 0x48fa6f
mov ecx, dword [esp + 0x14]
mov al, byte [ecx + 4]
test al, 4
lea esi, [ecx + 4]
jne 0x48fa63
call fcn.0048dff0
mov eax, dword [esi]
and eax, 0xfffffff8
add eax, 6
or byte [eax + 1], 8
mov edx, dword [esp + 0x14]
mov esi, dword [edx + 4]
mov edi, esi
mov ecx, esi
and edi, 3
and ecx, 4
mov dword [esp + 0x3c], ecx
jne 0x48fa8a
mov eax, edi
jmp 0x48fa96
mov eax, esi
and eax, 0xfffffff8
movzx eax, word [eax + 6]
or ax, di
shr eax, 0xb
test al, 1
je 0x48fd6e
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x48faf9
mov edx, dword [ebx + 0x34]
mov ebp, dword [edx + 8]
test ebp, ebp
jne 0x48fab9
mov dword [esp + 0x18], ebp
jmp 0x48faf9
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x3c]
mov eax, dword [edx + 0x998]
mov edx, dword [esp + 0x50]
xor ecx, ecx
mov cl, byte [eax + 0x1b1]
xor ebx, ebx
push ecx
push edx
mov ecx, ebp
call fcn.004898c0
mov ecx, dword [ebp + 4]
lea eax, [ecx + eax*8]
cmp dword [eax], 0
je 0x48faed
mov ebx, dword [eax + 4]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x44]
test ecx, ecx
jne 0x48fb01
mov esi, edi
jmp 0x48fb0b
and esi, 0xfffffff8
movzx esi, word [esi + 6]
or si, di
mov edx, esi
shr edx, 0xc
test dl, 1
je 0x48fb55
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x3fc]
test eax, eax
je 0x48fb55
cmp byte [eax + 0x39], 8
jae 0x48fb55
mov eax, 2
mov ecx, eax
push eax
push ecx
mov ecx, dword [esp + 0x20]
call fcn.0048c4a0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
test al, 4
je 0x48fb50
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xf7
mov byte [esp + 0x12], 0
mov al, byte [esp + 0x12]
test al, al
mov edx, dword [esp + 0x18]
mov dword [esp + 0x34], edx
je 0x48fbad
mov eax, dword [ebx + 0x34]
mov esi, dword [eax + 8]
test esi, esi
jne 0x48fb75
mov dword [esp + 0x34], esi
jmp 0x48fbad
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
mov eax, dword [edx + 0x3c]
mov ecx, dword [eax + 0x998]
mov eax, dword [esp + 0x50]
xor edx, edx
mov dl, byte [ecx + 0x1b1]
mov ecx, esi
xor edi, edi
push edx
push eax
call fcn.004898c0
mov ecx, dword [esi + 4]
lea eax, [ecx + eax*8]
cmp dword [eax], 0
je 0x48fba9
mov edi, dword [eax + 4]
mov dword [esp + 0x34], edi
mov ecx, dword [ebx + 0x18]
mov eax, dword [esp + 0x14]
cmp eax, ecx
mov dword [esp + 0x2c], ecx
jb 0x48fbcb
mov edx, dword [ebx + 0x20]
lea ecx, [ecx + edx*8]
cmp eax, ecx
mov byte [esp + 0x13], 1
jb 0x48fbd0
mov byte [esp + 0x13], 0
mov edi, dword [esp + 0x14]
mov edx, dword [edi + 4]
mov eax, dword [ebx]
mov ecx, ebx
mov dword [esp + 0x3c], edx
xor ebp, ebp
call dword [eax + 8]
test eax, eax
je 0x48fc1a
mov ecx, dword [ebx + 0x34]
mov esi, dword [ecx + 0x10]
test esi, esi
jne 0x48fc18
push esi
push ebx
push 0x10
call fcn.0052b400
add esp, 0xc
test eax, eax
je 0x48fc0e
push ebx
mov ecx, eax
call fcn.0048c9b0
mov esi, eax
jmp 0x48fc10
xor esi, esi
push esi
mov ecx, ebx
call fcn.0048e180
mov ebp, esi
mov eax, dword [esp + 0x34]
test eax, eax
je 0x48fc4a
mov edx, dword [esp + 0x40]
push edx
lea ecx, [esp + 0x58]
push ecx
push edi
push eax
mov ecx, ebx
call fcn.0048c0b0
test ebp, ebp
je 0x48fc4a
push 0
mov ecx, ebp
call fcn.00486fb0
test eax, eax
je 0x48f58f
mov edx, dword [esp + 0x18]
mov al, byte [edx + 0x11]
test al, al
jne 0x48fd20
mov eax, edx
cmp byte [eax + 0x10], 0x40
ja 0x48fd20
mov ecx, edx
add ecx, 0xc
push ecx
lea ecx, [esp + 0x44]
call fcn.00464010
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x20]
push edx
mov ecx, esi
call fcn.004a1fa0
mov edi, eax
test edi, edi
je 0x48fd20
mov eax, dword [esp + 0x54]
push eax
mov ecx, esi
call fcn.00411a40
cmp dword [esp + 0x28], 7
jl 0x48fcaa
mov eax, dword [esp + 0x18]
inc byte [eax + 0x10]
jmp 0x48fcb2
mov ecx, dword [esp + 0x18]
mov byte [ecx + 0x11], 1
mov edx, dword [esp + 0x24]
mov eax, dword [edx]
mov ecx, dword [eax + 0x3c]
mov edx, dword [ecx + 0x9cc]
push 0
push 0
push edi
push 0
push 1
push edx
push 0
push ebx
mov ecx, esi
call fcn.00496e50
mov eax, dword [esi + 0x4f4]
test eax, eax
jbe 0x48fcf3
mov ecx, dword [esi + 0x4fc]
dec eax
mov dword [esi + 0x4f4], eax
mov dword [ecx + eax*4], 2
cmp dword [esp + 0x28], 7
jl 0x48fd03
mov eax, dword [esp + 0x18]
dec byte [eax + 0x10]
jmp 0x48fd0b
mov edx, dword [esp + 0x18]
mov byte [edx + 0x11], 0
test ebp, ebp
je 0x48fd20
push 0
mov ecx, ebp
call fcn.00486fb0
test eax, eax
je 0x48f58f
mov al, byte [esp + 0x13]
test al, al
je 0x48fd6e
mov eax, dword [esp + 0x2c]
cmp eax, dword [ebx + 0x18]
jne 0x48fd3e
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
cmp dword [edx + 4], ecx
je 0x48fd6e
mov al, byte [esp + 0x1c]
test al, al
je 0x48fd54
mov eax, dword [esp + 0x50]
push eax
mov ecx, ebx
call fcn.0048bba0
jmp 0x48fd62
mov ecx, dword [esp + 0x50]
push 0
push ecx
mov ecx, ebx
call fcn.0048b9c0
test eax, eax
mov dword [esp + 0x14], eax
je 0x48f58f
mov edx, dword [esp + 0x28]
cmp edx, 6
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + 0x14]
jge 0x48fda9
test cl, cl
js 0x48fd93
mov eax, dword [ebp + 4]
test al, 4
je 0x48fd93
and eax, 0xfffffff8
add eax, 6
and byte [eax], 0x7f
test ch, 4
jne 0x48fda9
mov eax, dword [ebp + 4]
test al, 4
je 0x48fda9
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xfb
cmp edx, 8
jge 0x48fdc4
test ch, 0x10
jne 0x48fdc4
mov eax, dword [ebp + 4]
test al, 4
je 0x48fdc4
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xef
mov al, byte [esp + 0x12]
test al, al
jne 0x48fdea
mov edx, dword [esp + 0x54]
push edx
push ebp
mov ecx, ebx
call fcn.00489a70
mov eax, dword [ebp + 4]
test al, 4
je 0x48fdea
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xfe
mov ecx, dword [esp + 0x48]
mov ax, word [ecx]
cmp ax, 0x6f
jne 0x48fe31
cmp word [ecx + 2], 0x6e
jne 0x48fe31
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x50]
push edi
push eax
call fcn.004016d0
add esp, 8
cmp eax, 0xffffffff
je 0x48ff56
mov ecx, eax
mov edx, 1
shl edx, cl
mov byte [edi + 0x97d], 1
or dword [ebx + 0x28], edx
jmp 0x48ff56
cmp ax, 0x5f
mov edi, dword [esp + 0x20]
jne 0x48ff56
mov eax, dword [esp + 0x1c]
mov ecx, dword [edi + 0xa1c]
mov edx, dword [esp + 0x50]
push eax
push ecx
push edx
call fcn.004236a0
add esp, 0xc
test al, al
je 0x48ff0e
mov edx, dword [ebp]
mov ecx, edx
mov eax, ecx
and eax, 7
cmp eax, 7
jne 0x48fe7a
and ecx, 0xfffffff8
mov ecx, dword [ecx + 4]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x48fe84
and ecx, 0x1f
mov eax, ecx
cmp eax, 6
jne 0x48fed9
mov eax, edx
mov ecx, eax
and ecx, 7
cmp cl, 7
jne 0x48fe9b
and eax, 0xfffffff8
mov eax, dword [eax + 4]
and eax, 0xfffffff8
lea esi, [ebx + 0xc]
push eax
mov ecx, esi
call fcn.00485330
mov al, byte [edi + 0x97d]
test al, al
jne 0x48ff0e
mov eax, dword [esi]
test eax, eax
je 0x48ff0e
lea esp, [esp]
mov ecx, dword [eax + 0x28]
test ecx, ecx
jne 0x48fed0
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x48fec0
jmp 0x48ff0e
mov byte [edi + 0x97d], 1
jmp 0x48ff0e
mov esi, dword [ebx + 0xc]
test esi, esi
je 0x48ff07
mov eax, dword [esi + 4]
test eax, 0x40000000
jne 0x48ff07
dec eax
mov dword [esi + 4], eax
jne 0x48ff07
mov edx, esi
and edx, 0xfffff000
mov ecx, dword [edx]
push esi
call fcn.0052adb0
or dword [esi + 4], 0x80000000
mov dword [ebx + 0xc], 0
mov eax, dword [esp + 0x1c]
mov ecx, dword [edi + 0xa2c]
mov edx, dword [esp + 0x50]
push eax
push ecx
push edx
call fcn.004236a0
add esp, 0xc
test al, al
je 0x48ff56
mov ecx, dword [ebp]
mov eax, ecx
and eax, 7
cmp eax, 7
jne 0x48ff43
and ecx, 0xfffffff8
mov ecx, dword [ecx + 4]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x48ff4d
and ecx, 0x1f
mov eax, ecx
cmp eax, 6
jne 0x48ff56
or byte [ebx + 0x24], 4
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 8]
mov esi, eax
test esi, esi
je 0x49007f
mov eax, dword [edi + 0x43c]
test eax, eax
je 0x49007f
lea ecx, [esp + 0x58]
push ecx
mov ecx, ebp
call fcn.00463020
mov edx, dword [esp + 0x58]
mov eax, edx
and eax, 7
cmp eax, 7
mov ecx, edx
jne 0x48ff9e
mov eax, edx
and eax, 0xfffffff8
mov ecx, dword [eax + 4]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x48ffa8
and ecx, 0x1f
mov eax, ecx
cmp eax, 5
je 0x490067
mov eax, dword [ebx + 0x18]
cmp ebp, eax
mov dword [esp + 0x2c], eax
jb 0x48ffca
mov ecx, dword [ebx + 0x20]
lea edx, [eax + ecx*8]
cmp ebp, edx
jae 0x48ffca
mov bl, 1
jmp 0x48ffcc
xor bl, bl
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 4]
mov ebp, dword [esp + 0x20]
push ecx
push esi
mov ecx, ebp
mov dword [esp + 0x5c], eax
call fcn.004a2df0
mov esi, eax
push esi
lea edx, [esp + 0x4c]
push edx
mov ecx, ebp
call fcn.0049f2a0
test bl, bl
mov eax, dword [eax]
mov dword [esp + 0x58], eax
je 0x490045
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x2c]
cmp edx, dword [ecx + 0x18]
jne 0x490017
mov eax, dword [esp + 0x54]
cmp dword [edi + 4], eax
je 0x490045
mov al, byte [esp + 0x1c]
test al, al
je 0x49002b
mov edx, dword [esp + 0x50]
push edx
call fcn.0048bba0
jmp 0x490037
mov eax, dword [esp + 0x50]
push 0
push eax
call fcn.0048b9c0
mov edi, eax
test edi, edi
mov dword [esp + 0x14], edi
je 0x48f58f
mov ecx, dword [esp + 0x58]
push ecx
push ebp
mov ecx, edi
call fcn.00463750
push esi
call fcn.00439d00
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
add esp, 4
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp]
push eax
and ecx, 0xfffffff8
push ecx
mov ecx, dword [edi + 0x44c]
push edx
call fcn.0048e4c0
pop edi
mov eax, ebp
pop ebp
pop esi
pop ebx
add esp, 0x3c
ret 0xc