Function at 0x30c050
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x378
push ebx
push esi
xor ebx, ebx
push edi
mov edi, dword [ebp + 0x70]
test byte [edi + 0x3d], 0x1c
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x50], ebx
je 0x30c081
cmp dword [ebp + 0x78], ebx
mov dword [ebp + 0x44], 1
jne 0x30c084
mov dword [ebp + 0x44], ebx
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
lea esi, [edi + 0x54]
push esi
push eax
push ecx
lea edx, [ebp + 0x50]
push edx
lea eax, [ebp + 0x54]
push eax
call fcn.00215cf0
cmp dword [ebp + 0x54], 0
jne 0x30c0af
mov dword [ebp + 0x64], 0
jmp 0x30cbfe
test byte [edi + 0x3c], 0x20
je 0x30c0be
mov eax, dword [ebp + 0x54]
push edi
call fcn.0030b840
mov ecx, dword [edi + 0x5c]
push 0x64
push ecx
call dword [esi]
mov ebx, eax
test ebx, ebx
mov dword [ebp + 0x60], ebx
jne 0x30c0d7
mov dword [ebp + 0x64], eax
jmp 0x30cbfb
mov edx, dword [edi + 0x5c]
push 0x64
push edx
call dword [esi]
test eax, eax
mov dword [ebp + 0x4c], eax
jne 0x30c0ee
mov dword [ebp + 0x64], eax
jmp 0x30cbfb
mov ecx, dword [ebp + 0x50]
mov edx, dword [ebp + 0x44]
mov dword [ebp + 0x1c], edi
mov dword [ebp + 8], ebx
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x54]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0x1c]
mov dword [ebp + 0x2c], ecx
mov ecx, dword [edi + 0x20]
mov dword [ebp - 8], edx
mov edx, dword [edi + 0x24]
mov dword [ebp - 4], eax
mov eax, dword [edi + 0x28]
mov dword [ebp + 4], ecx
mov ecx, dword [edi + 0x14]
mov dword [ebp + 0x28], edx
mov edx, dword [edi + 0x18]
mov dword [ebp + 0x20], eax
push 0
mov dword [ebp + 0x18], ecx
push ebx
mov dword [ebp + 0x10], edx
call fcn.003f7640
add esp, 8
test eax, eax
je 0x30c18e
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x24]
mov dword [ebp + 0x4c], edx
mov edx, dword [ebp - 0xc]
mov esi, dword [ebp + 0x2c]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 8]
test eax, eax
mov dword [ebp + 0x70], ecx
mov dword [ebp + 0x54], edx
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x44], eax
je 0x30c170
mov dword [ebp + 0x64], 0
jmp 0x30cbf8
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x30c179
mov dword [eax], edx
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x30c182
mov dword [ecx], esi
mov dword [ebp + 0x64], 1
jmp 0x30cbf8
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x70]
mov dword [edi + 0x40], 1
mov dword [edi + 0x44], 0xff80
mov dword [edi + 0x48], 8
xor eax, eax
mov dword [edi + 0x4c], eax
mov dword [edi + 0x50], eax
mov eax, dword [esi + 0x54]
lea ebx, [esi + 0x54]
mov dword [edi + 0x54], eax
mov ecx, dword [ebx + 4]
mov dword [edi + 0x58], ecx
mov edx, dword [ebx + 8]
mov dword [edi + 0x5c], edx
mov eax, dword [ebx + 0xc]
mov dword [edi + 0x60], eax
xor eax, eax
mov dword [ebp + 0xc], ebx
call fcn.0030b730
mov eax, dword [ebp + 0x4c]
xor ecx, ecx
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], ecx
mov dword [eax + 0x48], 8
mov dword [eax + 0x4c], ecx
mov dword [eax + 0x50], ecx
mov edx, dword [ebx]
mov dword [eax + 0x54], edx
mov edx, dword [ebx + 4]
mov dword [eax + 0x58], edx
mov edx, dword [ebx + 8]
mov dword [eax + 0x5c], edx
mov edx, dword [ebx + 0xc]
mov dword [eax + 0x60], edx
xor ebx, ebx
jmp 0x30c210
push 0x80
push edi
call fcn.0030b790
mov dword [ebp + ebx*4 - 0x19c], eax
add ebx, 1
cmp ebx, 4
mov byte [eax], 0
jb 0x30c210
mov eax, fcn.0030b790
mov dword [ebp + 0x34], eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x4c]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x18c]
mov dword [ebp + 0x38], edi
call fcn.00330470
lea ecx, [ebp + 0x34]
mov edx, ecx
mov dword [ebp - 0x184], ecx
mov ecx, dword [ebp + 0x38]
push 0x24
lea eax, [ebp - 0x14]
push ecx
mov dword [ebp - 0x188], edx
mov dword [ebp - 0x180], eax
call dword [ebp + 0x34]
test eax, eax
je 0x30c282
push 0
lea edx, [ebp + 0x34]
push edx
mov ebx, eax
call fcn.002be0d0
jmp 0x30c284
xor eax, eax
xor ecx, ecx
mov edx, 0x15c250
mov ebx, 0x3f75a0
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x17c], 0x268ec0
mov dword [ebp - 0x178], ecx
mov dword [ebp - 0x174], edx
mov dword [ebp - 0x170], ecx
mov dword [ebp - 0x16c], edx
mov dword [ebp - 0x168], ecx
mov dword [ebp - 0x158], 0x3f7590
mov dword [ebp - 0x154], 0x3f7580
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0x140], ecx
call fcn.002be4b0
mov dword [ebp - 0x12c], eax
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x128], eax
mov ecx, dword [esi + 0x48]
mov dword [ebp - 0x124], ecx
mov dword [ebp - 0xd8], 0
mov edx, dword [esi + 0x94]
movsx eax, byte [edx + 0x18]
mov dword [ebp - 0x120], eax
mov ecx, dword [esi + 0x94]
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0xd0], eax
mov edx, dword [esi + 0x94]
mov ecx, dword [edx + 0x2c]
mov dword [ebp - 0xa8], ecx
mov edx, dword [esi + 0x94]
mov ecx, dword [edx + 0x30]
mov dword [ebp - 0x88], ecx
mov edx, dword [esi + 0x94]
mov ecx, dword [edx + 0x34]
mov dword [ebp - 0x84], ecx
mov edx, dword [esi + 0x1a4]
mov dword [ebp - 0x3c], edx
mov ecx, dword [esi + 0x1a8]
mov dword [ebp - 0x38], ecx
mov edx, dword [esi + 0x94]
mov ecx, dword [edx + 0x48]
and ecx, 3
shl ecx, 0xc
or eax, ecx
mov dword [ebp - 0xd0], eax
mov edx, dword [esi + 0x94]
mov eax, dword [edx + 0x40]
mov dword [ebp - 0x78], eax
mov ecx, dword [esi + 0x94]
movsx edx, byte [ecx + 0x3c]
mov dword [ebp - 0x74], edx
mov eax, dword [esi + 0x94]
mov ecx, dword [eax + 0x44]
mov dword [ebp - 0x70], ecx
mov edx, dword [esi + 0x1b4]
mov dword [ebp - 0x28], edx
mov eax, dword [esi + 0x1b8]
mov dword [ebp - 0x24], eax
mov ecx, dword [esi + 0x94]
mov edx, dword [ecx + 0x50]
mov dword [ebp - 0x20], edx
mov eax, dword [esi + 0x1bc]
xor ecx, ecx
mov dword [ebp - 0x1c], eax
cmp dword [esi + 0x1ac], ecx
lea edi, [ebp - 0x18c]
setne cl
mov dword [ebp - 0x18], ecx
call fcn.0030bc10
mov esi, dword [ebp + 0x70]
test byte [esi + 0x3c], 0x20
mov ebx, dword [ebp - 0xd8]
mov edi, 1
je 0x30c401
or ebx, edi
mov dword [ebp - 0xd8], ebx
test byte [esi + 0x3c], 1
je 0x30c410
or ebx, 2
mov dword [ebp - 0xd8], ebx
test byte [esi + 0x3c], 2
je 0x30c41f
or ebx, 4
mov dword [ebp - 0xd8], ebx
test byte [esi + 0x3c], 4
je 0x30c42e
or ebx, 8
mov dword [ebp - 0xd8], ebx
test byte [esi + 0x3c], 0x10
je 0x30c43d
or ebx, 0x10
mov dword [ebp - 0xd8], ebx
test byte [esi + 0x3c], 8
je 0x30c44c
or ebx, 0x20
mov dword [ebp - 0xd8], ebx
test byte [esi + 0x3c], 0x40
je 0x30c45b
or ebx, 0x40
mov dword [ebp - 0xd8], ebx
test byte [esi + 0x3c], 0x80
je 0x30c46a
or bl, 0x80
mov dword [ebp - 0xd8], ebx
mov ecx, pe_nt_image_headers32
test dword [esi + 0x3c], ecx
je 0x30c47d
or ebx, 0x10
mov dword [ebp - 0xd8], ebx
test byte [esi + 0x3d], 2
je 0x30c48c
or bh, 2
mov dword [ebp - 0xd8], ebx
test byte [esi + 0x3d], 4
je 0x30c49b
or bh, 4
mov dword [ebp - 0xd8], ebx
test byte [esi + 0x3d], 8
je 0x30c4aa
or bh, 8
mov dword [ebp - 0xd8], ebx
test byte [esi + 0x3d], 0x10
je 0x30c4b9
or bh, 0x10
mov dword [ebp - 0xd8], ebx
test byte [esi + 0x3d], 0x3c
je 0x30c4c5
mov dword [ebp - 0xd4], edi
mov eax, dword [ebp + 0x7c]
cmp eax, 4
mov dword [ebp - 0xcc], eax
mov edx, dword [esi + 0x6c]
mov dword [ebp - 0x11c], edx
mov edx, dword [esi + 0x70]
mov dword [ebp - 0x118], edx
mov edx, dword [esi + 0x74]
mov dword [ebp - 0x114], edx
mov edx, dword [esi + 0x78]
mov dword [ebp - 0x110], edx
mov edx, dword [esi + 0x7c]
mov dword [ebp - 0x10c], edx
mov edx, dword [esi + 0x80]
mov dword [ebp - 0x108], edx
mov edx, dword [esi + 0x84]
mov dword [ebp - 0x104], edx
mov edx, dword [esi + 0x88]
mov dword [ebp - 0x100], edx
mov edx, dword [esi + 0x8c]
mov dword [ebp - 0xfc], edx
mov edx, dword [esi + 0x90]
mov dword [ebp - 0xe0], edx
jl 0x30c53f
mov dword [ebp - 0x40], edi
xor eax, eax
cmp dword [esi + 0x184], eax
setne al
mov dword [ebp - 0xf8], eax
mov edx, dword [esi + 0x180]
mov dword [ebp - 0xf4], edx
mov eax, dword [esi + 0x19c]
mov dword [ebp - 0xf0], eax
mov edx, dword [esi + 0x1a0]
mov dword [ebp - 0xe4], edx
mov eax, dword [esi + 0x94]
mov edx, dword [eax + 0x2c]
mov dword [ebp - 0xa8], edx
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x30], eax
mov edx, dword [esi + 0x34]
mov dword [ebp - 0x34], edx
cmp dword [esi + 0x1b0], 0
je 0x30c59b
mov dword [ebp - 0x2c], edi
lea eax, [ebp - 0x19c]
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], 0
mov edx, dword [esi + 0x94]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x30c5ca
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0x14c], edi
mov eax, dword [esi + 0x1c0]
mov edi, ebx
and edi, 0x400
mov dword [ebp - 0x80], eax
je 0x30c5ee
mov dword [ebp - 0x15c], 0x3f7570
mov eax, 0x3f7560
jmp 0x30c660
test bh, 8
je 0x30c604
mov dword [ebp - 0x15c], 0x3f7570
mov eax, 0x3f7550
jmp 0x30c660
test bl, bl
jns 0x30c619
mov dword [ebp - 0x15c], 0x3f7540
mov eax, 0x3f7530
jmp 0x30c660
test bh, 2
je 0x30c635
mov dword [ebp - 0x15c], 0x3f7520
mov eax, 0x3f7510
mov dword [ebp - 0x22c], ecx
jmp 0x30c660
test bl, 0x40
je 0x30c651
mov dword [ebp - 0x15c], 0x3f7520
mov eax, 0x3f7500
mov dword [ebp - 0x22c], ecx
jmp 0x30c660
mov dword [ebp - 0x15c], 0x3f74f0
mov eax, 0x3f74e0
cmp dword [ebp + 0x78], 0
je 0x30c6e4
lea edx, [ebp - 0x1bc]
mov dword [ebp - 0x160], 0x3f74d0
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x30c678
test edi, edi
jne 0x30c6b9
test bh, 8
jne 0x30c6b9
lea edi, [ebp - 0x1bc]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x30c696
mov ecx, dword [0x3f74c0]
mov edx, dword [0x3f74c4]
mov dword [edi], ecx
mov dword [edi + 4], edx
lea ebx, [ebp - 0x1bc]
jmp 0x30c6f0
lea edi, [ebp - 0x1bc]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x30c6c2
mov eax, dword [0x3f74b0]
mov cl, byte [0x3f74b4]
mov dword [edi], eax
mov byte [edi + 4], cl
lea ebx, [ebp - 0x1bc]
jmp 0x30c6f0
mov dword [ebp - 0x160], 0x3f74a0
mov ebx, eax
mov eax, dword [ebp - 0x164]
call fcn.002be4b0
mov dword [ebp - 0x130], eax
xor eax, eax
cmp dword [ebp + 0x44], eax
mov dword [ebp + 0x30], eax
je 0x30c71c
mov edx, dword [ebp + 0x74]
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x134], edx
jmp 0x30c72b
lea ecx, [ebp + 0x30]
mov dword [ebp - 0x13c], ecx
mov dword [ebp - 0x134], eax
lea edi, [ebp - 0x18c]
call fcn.0030be40
mov edi, dword [ebp + 0x70]
push edi
lea edx, [ebp - 0x18c]
push edx
lea esi, [ebp - 0x310]
call fcn.0030b300
mov eax, dword [ebp - 0x164]
mov ebx, 0x3f7490
call fcn.002be4b0
mov dword [ebp - 0x23c], eax
mov eax, dword [ebp - 0x164]
mov ebx, 0x3f7480
call fcn.002be4b0
xor ecx, ecx
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x1e4], ecx
mov dword [ebp - 0x1e0], ecx
mov dword [ebp - 0x1dc], ecx
cmp dword [edi + 0x2c], ecx
mov dword [ebp + 0x64], ecx
jle 0x30c81f
mov dword [ebp + 0x58], ecx
jmp 0x30c7a0
mov eax, dword [edi + 0x30]
mov edx, dword [ebp + 0x58]
mov al, byte [edx + eax]
cmp al, 2
jne 0x30c7b8
add ecx, 1
mov dword [ebp - 0x1e4], ecx
jmp 0x30c80d
cmp al, 4
jne 0x30c80d
mov ecx, dword [edi + 0x30]
mov edx, dword [ebp + 0x58]
mov eax, dword [ebp - 0x1d0]
mov ebx, dword [ecx + edx]
lea esi, [ecx + edx]
mov ecx, dword [esi + 4]
mov dword [ebp + 0x40], eax
mov eax, dword [eax + 8]
mov eax, dword [eax + 4]
sar ebx, 8
lea edx, [ecx + ebx - 1]
mov ecx, dword [eax + 4]
push 0x18
push ecx
mov dword [ebp + 0x5c], edx
call dword [eax]
mov ecx, dword [ebp + 0x40]
mov edx, dword [ebp + 0x5c]
push ecx
mov dword [eax], 0
mov dword [eax + 0xc], esi
mov dword [eax + 4], ebx
mov dword [eax + 8], edx
call fcn.0030cfc0
mov ecx, dword [ebp - 0x1e4]
mov eax, dword [ebp + 0x64]
add dword [ebp + 0x58], 0xc
add eax, 1
cmp eax, dword [edi + 0x2c]
mov dword [ebp + 0x64], eax
jl 0x30c7a0
test ecx, ecx
jle 0x30c92d
mov eax, dword [ebp - 0x184]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 4]
add edx, edx
add edx, edx
push edx
push ecx
call dword [eax]
mov edx, dword [ebp - 0x2c4]
xor ecx, ecx
mov dword [ebp - 0x1dc], eax
cmp dword [edi + 0x2c], ecx
mov dword [ebp + 0x5c], ecx
mov dword [ebp + 0x40], edx
mov dword [ebp + 0x64], ecx
jle 0x30c924
lea ebx, [eax + 4]
mov dword [ebp + 0x58], ecx
mov eax, dword [edi + 0x30]
mov ecx, dword [ebp + 0x58]
cmp byte [ecx + eax], 2
jne 0x30c90b
mov edx, eax
mov eax, ecx
mov ecx, dword [eax + edx]
sar ecx, 8
mov dword [ebx], ecx
mov edx, dword [edi + 0x30]
mov eax, dword [edx + eax + 4]
mov ecx, dword [ebp + 0x5c]
mov dword [ebx + 4], eax
lea eax, [ebx - 4]
mov dword [ebx + 8], ecx
push eax
mov ecx, edi
lea esi, [ebp - 0x310]
mov dword [ebx + 0xc], 2
call fcn.00306b90
mov dword [ebx - 4], eax
mov eax, dword [ebp - 0x188]
mov edx, dword [eax + 4]
push 8
push edx
call dword [eax]
mov esi, eax
mov byte [esi + 4], 1
lea eax, [ebx - 4]
mov dword [esi], eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
lea edx, [ecx + eax - 1]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x40]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 4]
mov dword [ebp], edx
mov edx, dword [eax + 4]
push 0x18
push edx
call dword [eax]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp]
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 0x40]
push ecx
mov dword [eax], 0
mov dword [eax + 0xc], esi
mov dword [eax + 8], edx
call fcn.0030cfc0
mov edx, dword [ebx + 4]
shl edx, 4
add dword [ebp + 0x5c], edx
add ebx, 0x14
mov eax, dword [ebp + 0x64]
add dword [ebp + 0x58], 0xc
add eax, 1
cmp eax, dword [edi + 0x2c]
mov dword [ebp + 0x64], eax
jl 0x30c861
mov ecx, dword [ebp + 0x5c]
mov dword [ebp - 0x1e0], ecx
mov dword [ebp - 0x54], ecx
cmp dword [ebp - 0x230], 1
mov ebx, dword [ebp + 0x50]
jne 0x30c956
test ebx, ebx
je 0x30c956
mov esi, dword [ebp + 0x54]
cmp esi, ebx
je 0x30c959
test byte [edi + 0x3d], 0x3c
jne 0x30c959
mov dword [ebp + 0x64], 0
jmp 0x30cbf8
mov esi, dword [ebp + 0x54]
push edi
push ebx
push esi
lea eax, [ebp - 0x310]
push eax
call fcn.00301150
test eax, eax
mov dword [ebp + 0x64], eax
je 0x30c999
cmp dword [ebp - 0x230], 2
jne 0x30c987
push edi
lea ebx, [ebp - 0x310]
call fcn.00307f00
mov ebx, dword [ebp + 0x50]
push edi
lea ecx, [ebp - 0x310]
push ecx
mov edx, esi
call fcn.003087e0
mov dword [ebp + 0x64], eax
xor ecx, ecx
cmp eax, ecx
je 0x30c9c4
mov edx, dword [ebp - 0x300]
mov ecx, dword [ebp + 0x78]
lea eax, [ebp - 0x18c]
mov dword [ebp - 0x144], edx
call fcn.00330d20
mov dword [ebp + 0x64], eax
mov dword [edi + 0x198], eax
xor ecx, ecx
cmp eax, ecx
mov dword [ebp + 0x48], ecx
mov dword [ebp + 0x3c], ecx
jne 0x30c9db
test byte [edi + 0x3c], 0xa0
mov dword [ebp + 0x5c], 1
jne 0x30c9de
mov dword [ebp + 0x5c], ecx
cmp dword [ebp + 0x78], ecx
je 0x30ca5d
cmp dword [ebp + 0x44], 0
jne 0x30ca4b
test eax, eax
je 0x30ca3e
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 0x30]
push eax
push eax
lea ecx, [ebp + 0x3c]
push ecx
lea edx, [ebp + 0x48]
push edx
call fcn.00215cf0
test byte [edi + 0x3c], 0x20
je 0x30ca4b
mov edx, dword [ebp + 0x48]
test edx, edx
je 0x30ca4b
mov eax, dword [edx + 0x1c]
test eax, 0x800000
je 0x30ca32
mov cl, byte [edx + 6]
and eax, 0xff7fffff
mov dword [edx + 0x1c], eax
mov eax, 1
shl eax, cl
or dword [edi + 0xd0], eax
mov edx, dword [edx + 0xc4]
test edx, edx
jne 0x30ca10
jmp 0x30ca4b
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x5c], 0
je 0x30ca5d
mov eax, dword [ebp + 0x48]
test eax, eax
je 0x30ca5d
call fcn.0030baa0
mov bl, 0x80
test byte [edi + 0x3c], bl
je 0x30cb68
lea eax, [edi + 0xfc]
mov ecx, 0x10
mov dword [eax], 0
add eax, 8
sub ecx, 1
jne 0x30ca73
mov edx, dword [ebp - 0x148]
test edx, edx
je 0x30caab
mov esi, 0x12
mov eax, dword [edx + 4]
cmp dword [eax + 0x18], esi
jne 0x30caa5
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x48]
or dword [edi + ecx*8 + 0xfc], eax
mov edx, dword [edx]
test edx, edx
jne 0x30ca90
test byte [edi + 0x3c], bl
je 0x30cb68
mov ebx, dword [ebp - 0x148]
xor esi, esi
test ebx, ebx
mov dword [edi + 0x17c], 0xffffffff
je 0x30cb62
mov edi, edi
mov edx, dword [ebx + 4]
cmp dword [edx + 8], 2
jne 0x30cb58
mov ecx, dword [edx + 0xc]
and ecx, 0x18
cmp cl, 0x18
jne 0x30cb58
mov eax, dword [edx + 0x44]
cmp eax, 0x52
jl 0x30cb0c
cmp eax, 0x61
jg 0x30cb0c
or esi, 0x3ff
test dword [edx + 0x34], 0xffff0000
je 0x30cb58
mov dword [edi + 0x17c], 0
jmp 0x30cb58
cmp eax, 0x47
jne 0x30cb1a
and dword [edi + 0x17c], 0xfffffff1
jmp 0x30cb58
cmp eax, 0x3c
jl 0x30cb24
cmp eax, 0x45
jle 0x30cb2e
cmp eax, 0x48
jl 0x30cb58
cmp eax, 0x51
jg 0x30cb58
cmp eax, 0x3c
jl 0x30cb3b
cmp eax, 0x45
lea ecx, [eax - 0x3c]
jle 0x30cb3e
lea ecx, [eax - 0x48]
mov eax, 1
shl eax, cl
or esi, eax
test dword [edx + 0x34], 0xffff0000
je 0x30cb58
not eax
and dword [edi + 0x17c], eax
mov ebx, dword [ebx]
test ebx, ebx
jne 0x30cad0
and dword [edi + 0x17c], esi
mov edx, dword [ebp - 0xa4]
mov dword [edi + 0x188], edx
mov eax, dword [ebp - 0xa0]
mov dword [edi + 0x18c], eax
mov ecx, dword [ebp - 0x9c]
mov dword [edi + 0x190], ecx
mov edx, dword [ebp - 0x98]
mov dword [edi + 0x194], edx
mov eax, dword [ebp - 0x94]
mov dword [edi + 0xa8], eax
mov ecx, dword [ebp - 0x8c]
mov dword [edi + 0xb0], ecx
mov edx, dword [ebp - 0x90]
mov dword [edi + 0xac], edx
mov eax, dword [edi + 0xc]
test eax, eax
je 0x30cbc8
mov ecx, dword [ebp + 0x48]
mov dword [eax], ecx
mov eax, dword [edi + 0x10]
test eax, eax
je 0x30cbd4
mov edx, dword [ebp + 0x3c]
mov dword [eax], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 4]
mov edx, dword [ebp + 0x28]
mov dword [edi + 0x1c], eax
mov eax, dword [ebp + 0x20]
mov dword [edi + 0x20], ecx
mov ecx, dword [ebp + 0x18]
mov dword [edi + 0x24], edx
mov edx, dword [ebp + 0x10]
mov dword [edi + 0x28], eax
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], edx
mov edi, dword [ebp + 0x70]
mov ebx, dword [ebp + 0x60]
test ebx, ebx
je 0x30cc28
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x30cc20
lea esp, [esp]
mov esi, dword [eax]
push eax
mov eax, dword [ebx + 0x60]
push eax
call dword [ebx + 0x58]
test esi, esi
mov eax, esi
jne 0x30cc10
mov ecx, dword [edi + 0x60]
push ebx
push ecx
call dword [edi + 0x58]
mov eax, dword [ebp + 0x4c]
test eax, eax
je 0x30cc37
mov edx, dword [edi + 0x60]
push eax
push edx
call dword [edi + 0x58]
mov ecx, dword [ebp + 0x54]
test ecx, ecx
je 0x30cc64
mov eax, dword [edi + 0xc]
test eax, eax
je 0x30cc49
cmp dword [eax], ecx
je 0x30cc64
mov eax, ecx
jmp 0x30cc50
mov esi, dword [eax + 0xc4]
push eax
mov eax, dword [edi + 0x60]
push eax
call dword [edi + 0x58]
test esi, esi
mov eax, esi
jne 0x30cc50
mov eax, dword [ebp + 0x64]
pop edi
pop esi
pop ebx
add ebp, 0x68
mov esp, ebp
pop ebp
ret 0x10