Function at 0x10030812
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
sub esp, 0x68
mov eax, 0x1010bde7
call fcn.100f4ca8
sub esp, 0x660
push esi
mov esi, ecx
mov dword [ebp + 0x68], esi
call fcn.1002e7da
mov ecx, dword [ebp + 0x74]
lea edx, [ebp - 0x66c]
push 0x600
call fcn.1000d527
test eax, eax
jne 0x100312af
push ebx
xor ebx, ebx
mov eax, ebx
push edi
xor edx, edx
inc edx
cmp byte [ebp + eax - 0x66c], bl
jne 0x100312aa
inc eax
cmp eax, 0x400
jb 0x10030852
mov cl, byte [ebp - 0x26c]
mov eax, dword [ebp - 0x26b]
mov byte [esi + 0x24], cl
mov byte [esi + 0x25], al
push 9
pop edi
mov dword [ebp + 0x24], edi
cmp cl, 0x42
jne 0x100309c9
cmp al, 0x44
jne 0x100309c9
cmp byte [ebp - 0x1f0], 0x48
jne 0x100312aa
cmp byte [ebp - 0x1ef], 0x2b
jne 0x100312aa
mov edx, dword [ebp - 0x258]
bswap edx
cmp edx, 0x200
je 0x100308d2
cmp edi, 0x1f
je 0x100312aa
xor eax, eax
inc edi
inc eax
mov ecx, edi
shl eax, cl
cmp eax, edx
jne 0x100308bd
movzx eax, byte [ebp - 0x25a]
mov ecx, edi
movzx edx, byte [ebp - 0x259]
shl eax, 8
or eax, edx
mov dword [esi + 0x38], edi
xor edx, edx
mov dword [esi + 0x3c], eax
add eax, 2
adc edx, ebx
call fcn.100f4dc0
mov dword [esi + 0x68], eax
mov edi, edx
mov dword [ebp + 0x54], eax
movzx eax, byte [ebp - 0x1ee]
cdq
mov ecx, eax
mov dword [esi + 0x6c], edi
movzx eax, byte [ebp - 0x1ed]
mov esi, edx
shld esi, ecx, 8
cdq
shl ecx, 8
or edx, esi
mov esi, dword [ebp + 0x68]
or ecx, eax
xor eax, eax
inc eax
add eax, ecx
mov ecx, dword [esi + 0x38]
adc edx, ebx
call fcn.100f4dc0
mov dword [esi + 0x58], eax
mov ecx, edx
mov dword [ebp + 0x4c], eax
movzx eax, byte [ebp - 0x1ec]
mov dword [esi + 0x5c], ecx
cdq
mov dword [ebp + 0x64], ecx
mov esi, edx
mov ecx, eax
movzx eax, byte [ebp - 0x1eb]
shld esi, ecx, 8
cdq
or edx, esi
shl ecx, 8
mov esi, dword [ebp + 0x68]
or eax, ecx
mov ecx, dword [esi + 0x38]
call fcn.100f4dc0
mov ecx, dword [ebp + 0x4c]
add eax, ecx
adc edx, dword [ebp + 0x64]
cmp edi, edx
ja 0x10030986
jb 0x10030980
cmp dword [ebp + 0x54], eax
jae 0x10030986
mov dword [esi + 0x68], eax
mov dword [esi + 0x6c], edx
mov edi, dword [ebp + 0x74]
push ebx
push ebx
push dword [ebp + 0x64]
mov eax, dword [edi]
push ecx
push edi
call dword [eax + 0x10]
test eax, eax
jne 0x100312ad
push 0x600
lea edx, [ebp - 0x66c]
mov ecx, edi
call fcn.1000d527
test eax, eax
jne 0x100312ad
mov eax, dword [ebp - 0x26b]
xor edx, edx
mov cl, byte [ebp - 0x26c]
inc edx
push 9
pop edi
cmp cl, 0x48
jne 0x100312aa
cmp al, 0x2b
je 0x100309de
cmp al, 0x58
jne 0x100312aa
movzx ecx, byte [ebp - 0x26a]
movzx eax, byte [ebp - 0x269]
shl cx, 8
or cx, ax
movzx eax, cx
mov word [esi + 0x26], ax
add eax, 0xfffffffc
cmp ax, dx
ja 0x100312aa
mov eax, dword [ebp - 0x25c]
mov ecx, dword [ebp - 0x24c]
bswap eax
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0x258]
bswap eax
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x248]
bswap eax
mov dword [esi + 0x34], eax
bswap ecx
mov dword [esi + 0x30], ecx
cmp eax, 0x20000000
ja 0x100312aa
cmp ecx, 0x40000000
ja 0x100312aa
mov edx, dword [ebp + 0x74]
lea eax, [esi + 0x70]
push eax
push 2
push ebx
mov ecx, dword [edx]
push ebx
push edx
call dword [ecx + 0x10]
test eax, eax
jne 0x100312ad
mov edx, dword [ebp + 0x78]
test edx, edx
je 0x10030a91
mov eax, dword [esi + 0x34]
xor ecx, ecx
add eax, dword [esi + 0x30]
push ebx
adc ecx, ebx
add eax, 1
mov dword [ebp + 0x58], eax
mov eax, dword [edx]
adc ecx, ebx
mov dword [ebp + 0x5c], ecx
lea ecx, [ebp + 0x58]
push ecx
push edx
call dword [eax + 0xc]
test eax, eax
jne 0x100312ad
mov edx, dword [ebp - 0x244]
mov ecx, edi
bswap edx
cmp edx, 0x200
je 0x10030ab6
cmp ecx, 0x1f
je 0x100312aa
xor eax, eax
inc ecx
inc eax
shl eax, cl
cmp eax, edx
jne 0x10030aa3
mov eax, dword [ebp - 0x240]
bswap eax
mov dword [esi + 0x3c], eax
mov eax, dword [ebp - 0x23c]
mov dword [esi + 0x38], ecx
lea ecx, [esi + 0x48]
bswap eax
push str.rsrc
mov dword [esi + 0x40], eax
call fcn.10002470
xorps xmm0, xmm0
mov dword [ebp - 0x34], ebx
movlpd qword [ebp - 0x3c], xmm0
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 4], ebx
movlpd qword [ebp - 0x24], xmm0
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
movlpd qword [ebp], xmm0
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
lea eax, [ebp - 0x1ac]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x3c]
call fcn.100313f3
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x24]
call fcn.100313f3
lea eax, [ebp - 0x10c]
push eax
lea ecx, [ebp]
call fcn.100313f3
push 0x1002e457
push 0x1002e2a8
push 2
push 0xc
lea eax, [ebp - 0x54]
push eax
call fcn.100f4dff
push dword [esi + 0x38]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 3
call fcn.10030017
test al, al
je 0x10030d8b
cmp dword [ebp - 0x34], 0
je 0x10030d8f
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x5c], ebx
push dword [ebp + 0x74]
lea eax, [ebp + 0x58]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x3c]
mov ecx, esi
push eax
call fcn.100315a3
mov edi, eax
test edi, edi
jne 0x10030bfa
mov eax, dword [ebp + 0x5c]
mov dword [ebp + 0x60], eax
cmp eax, 0x78
jb 0x10030bf5
mov edi, dword [ebp + 0x58]
push 9
movzx ecx, byte [edi + 0x20]
movzx eax, byte [edi + 0x21]
mov edx, dword [edi + 0x18]
shl ecx, 8
or ecx, eax
bswap edx
mov dword [ebp + 0x64], ecx
cmp dword [ebp + 0x64], 0x200
mov dword [ebp + 0x50], edx
pop ecx
jmp 0x10030be0
xor eax, eax
cmp ecx, 0x10
je 0x10030bf7
inc ecx
inc eax
shl eax, cl
cmp eax, dword [ebp + 0x64]
mov dword [ebp + 0x40], ecx
jne 0x10030bd2
mov eax, dword [edi + 0x24]
shr dword [ebp + 0x60], cl
bswap eax
mov dword [ebp + 0x28], eax
cmp dword [ebp + 0x60], eax
jae 0x10030c1d
xor eax, eax
lea edi, [eax + 1]
push dword [ebp + 0x58]
mov byte [ebp - 4], 3
call fcn.100f4c7e
pop ecx
cmp edi, 1
je 0x10030d8b
test edi, edi
je 0x10030d8f
jmp 0x10030f5e
test edx, edx
jne 0x10030c31
push edi
mov byte [ebp - 4], 3
call fcn.100f4c7e
pop ecx
jmp 0x10030d8f
test eax, eax
jne 0x10030c44
push edi
mov byte [ebp - 4], 3
call fcn.100f4c7e
jmp 0x10030d8a
push eax
lea ecx, [ebp + 0x64]
call fcn.10016d98
push dword [ebp + 0x28]
mov esi, dword [ebp + 0x64]
push ebx
push esi
mov byte [ebp - 4], 5
call fcn.100f83e0
mov eax, dword [ebp + 0x50]
add esp, 0xc
cmp eax, dword [ebp + 0x28]
jae 0x10030d76
cmp byte [esi + eax], 0
jne 0x10030d76
mov ecx, dword [ebp + 0x40]
mov byte [esi + eax], 1
shl eax, cl
mov dword [ebp + 0x50], eax
add eax, edi
push ecx
push eax
lea ecx, [ebp + 0x18]
call fcn.10031441
test al, al
je 0x10030d76
cmp byte [ebp + 0x1c], 0xff
jne 0x10030d76
cmp dword [ebp + 0x20], 0
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x54], ebx
jbe 0x10030eb3
mov ecx, dword [ebp + 0x40]
xor eax, eax
inc eax
mov dword [ebp + 0x4c], ebx
shl eax, cl
mov ecx, ebx
mov dword [ebp + 0x2c], eax
mov edx, edi
sub edx, ecx
add edx, eax
add edx, dword [ebp + 0x50]
movzx ecx, byte [edx - 2]
movzx eax, byte [edx - 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx - 3]
mov dword [ebp + 0x48], ecx
movzx ecx, byte [edx - 4]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp + 0x48]
sub ecx, eax
cmp ecx, 0x4c
jne 0x10030d76
lea edx, [edi + eax]
add edx, dword [ebp + 0x50]
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
shl ax, 8
or cx, ax
cmp cx, 0xa
jne 0x10030d76
mov al, byte [edx + 2]
test al, al
jne 0x10030d1e
mov eax, dword [ebp - 0x54]
lea ecx, [ebp - 0x54]
jmp 0x10030d2c
cmp al, 0xff
jne 0x10030e97
mov eax, dword [ebp - 0x48]
lea ecx, [ebp - 0x48]
mov dword [ebp + 0x34], eax
mov eax, dword [edx + 4]
bswap eax
mov dword [ebp + 0x30], eax
mov eax, dword [edx + 8]
add edx, 0xc
cmp dword [ecx + 4], 0
bswap eax
mov dword [ebp + 0x3c], ecx
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x38], edx
je 0x10030e31
mov esi, dword [ecx + 4]
mov eax, dword [ebp + 0x34]
mov eax, dword [eax + esi*4 - 4]
mov esi, dword [ebp + 0x30]
cmp dword [eax], esi
mov esi, dword [ebp + 0x64]
jne 0x10030e31
mov eax, dword [ebp + 0x60]
cmp eax, dword [ebp + 0x48]
je 0x10030e4a
push esi
call fcn.100f4c7e
push edi
mov byte [ebp - 4], 3
call fcn.100f4c7e
mov esi, dword [ebp + 0x68]
pop ecx
pop ecx
mov byte [esi + 0x44], 1
mov edi, dword [esi + 0x38]
lea eax, [ebp - 0x54]
push 4
push eax
lea ecx, [ebp - 0x24]
call fcn.100317fb
test al, al
je 0x10030f59
push edi
lea ecx, [ebp - 0x24]
call fcn.10030017
test al, al
je 0x10030f59
mov edi, dword [esi + 0x38]
lea eax, [ebp - 0x54]
push 8
push eax
lea ecx, [ebp]
call fcn.100317fb
test al, al
je 0x1003126d
push edi
lea ecx, [ebp]
call fcn.10030017
test al, al
je 0x1003126d
mov eax, dword [ebp]
or eax, dword [ebp + 4]
je 0x10031273
cmp dword [ebp + 8], 0
je 0x10031273
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x5c], ebx
push dword [ebp + 0x74]
lea eax, [ebp + 0x58]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp]
mov ecx, esi
push eax
call fcn.100315a3
mov edi, eax
test edi, edi
je 0x10030ed8
push dword [ebp + 0x58]
mov byte [ebp - 4], 3
call fcn.100f4c7e
pop ecx
jmp 0x10030f5e
call fcn.1002e665
mov ecx, dword [ebp + 0x30]
mov edx, dword [ebp + 0x38]
mov dword [eax], ecx
mov ecx, dword [ebp + 0x48]
mov dword [eax + 4], ecx
mov dword [ebp + 0x60], ecx
mov ecx, dword [ebp + 0x3c]
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ecx + 4]
mov edi, dword [ebp + 0x60]
push 8
mov eax, dword [eax]
pop esi
mov eax, dword [eax + ecx*4 - 4]
mov ebx, eax
mov dword [ebp + 0x48], eax
mov eax, dword [edx + 4]
mov ecx, dword [edx]
bswap eax
mov dword [ebp + 0x48], eax
bswap ecx
test eax, eax
je 0x10030e81
push eax
push ecx
lea ecx, [ebx + 8]
call fcn.10007e13
add edi, dword [ebp + 0x48]
mov edx, dword [ebp + 0x38]
add edx, 8
mov dword [ebp + 0x38], edx
sub esi, 1
jne 0x10030e61
mov esi, dword [ebp + 0x64]
xor ebx, ebx
mov dword [ebp + 0x60], edi
mov edi, dword [ebp + 0x58]
mov eax, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x4c]
inc eax
add ecx, 2
mov dword [ebp + 0x54], eax
cmp eax, dword [ebp + 0x20]
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x4c], ecx
jb 0x10030cc1
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x10030c64
push esi
call fcn.100f4c7e
push edi
mov byte [ebp - 4], 3
call fcn.100f4c7e
mov esi, dword [ebp + 0x68]
pop ecx
pop ecx
jmp 0x10030d8f
mov eax, dword [ebp + 0x5c]
mov dword [ebp + 0x64], eax
cmp eax, 0x78
jb 0x10030f2c
mov edi, dword [ebp + 0x58]
push 9
movzx ecx, byte [edi + 0x20]
movzx eax, byte [edi + 0x21]
mov edx, dword [edi + 0x18]
shl ecx, 8
or ecx, eax
bswap edx
mov dword [ebp + 0x2c], ecx
cmp ecx, 0x200
mov dword [ebp + 0x60], edx
pop ecx
je 0x10030f1c
xor eax, eax
cmp ecx, 0x10
je 0x10030f2e
inc ecx
inc eax
shl eax, cl
mov dword [ebp + 0x24], ecx
cmp eax, dword [ebp + 0x2c]
jne 0x10030f09
mov eax, dword [edi + 0x24]
shr dword [ebp + 0x64], cl
bswap eax
mov dword [ebp + 0x4c], eax
cmp dword [ebp + 0x64], eax
jae 0x10030f36
xor eax, eax
lea edi, [eax + 1]
jmp 0x10030e1f
test edx, edx
jne 0x10030f4a
push edi
mov byte [ebp - 4], 3
call fcn.100f4c7e
pop ecx
jmp 0x10031273
test eax, eax
jne 0x10030f98
push edi
mov byte [ebp - 4], 3
call fcn.100f4c7e
pop ecx
xor eax, eax
lea edi, [eax + 1]
mov ebx, edi
push 0x1002e457
push 2
push 0xc
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 2
push eax
call fcn.100f4e73
push dword [ebp + 0xc]
call fcn.100f4c7e
push dword [ebp - 0x18]
call fcn.100f4c7e
push dword [ebp - 0x30]
call fcn.100f4c7e
add esp, 0xc
mov eax, ebx
jmp 0x100312ad
push eax
lea ecx, [ebp + 0x2c]
call fcn.10016d98
push dword [ebp + 0x4c]
mov esi, dword [ebp + 0x2c]
push ebx
push esi
call fcn.100f83e0
xorps xmm0, xmm0
mov dword [ebp - 0x64], ebx
add esp, 0xc
movlpd qword [ebp - 0x6c], xmm0
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov eax, dword [ebp + 0x60]
mov byte [ebp - 4], 8
cmp eax, dword [ebp + 0x4c]
jae 0x1003125e
cmp byte [esi + eax], 0
jne 0x1003125e
mov ecx, dword [ebp + 0x24]
mov byte [esi + eax], 1
shl eax, cl
mov dword [ebp + 0x60], eax
add eax, edi
push ecx
push eax
lea ecx, [ebp + 0x18]
call fcn.10031441
test al, al
je 0x1003125e
cmp byte [ebp + 0x1c], 0xff
jne 0x1003125e
cmp dword [ebp + 0x20], 0
mov dword [ebp + 0x30], ebx
jbe 0x100311f5
mov ecx, dword [ebp + 0x24]
xor eax, eax
inc eax
mov dword [ebp + 0x34], ebx
shl eax, cl
mov edx, ebx
mov dword [ebp + 0x40], eax
mov ecx, edi
sub ecx, edx
add ecx, eax
add ecx, dword [ebp + 0x60]
movzx edx, byte [ecx - 2]
movzx eax, byte [ecx - 1]
shl edx, 8
or edx, eax
movzx eax, byte [ecx - 3]
mov dword [ebp + 0x54], edx
movzx edx, byte [ecx - 4]
shl edx, 8
or edx, eax
mov eax, dword [ebp + 0x54]
sub edx, eax
mov dword [ebp + 0x50], edx
cmp edx, 0xe
jb 0x1003125e
lea edx, [edi + eax]
add edx, dword [ebp + 0x60]
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [edx + 4]
bswap eax
mov dword [ebp + 0x28], eax
mov eax, dword [edx + 8]
bswap eax
mov dword [ebp + 0x54], ecx
test eax, eax
je 0x1003108f
mov eax, dword [ebp + 0x68]
mov byte [eax + 0x45], 1
jmp 0x100311d9
movzx ecx, byte [edx + 0xc]
movzx eax, byte [edx + 0xd]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp + 0x54]
add eax, 2
mov dword [ebp + 0x64], ecx
cmp eax, dword [ebp + 0x50]
ja 0x1003125e
lea eax, [ecx*2 + 0xc]
cmp dword [ebp + 0x54], eax
jne 0x1003125e
add edx, 0xe
mov dword [ebp + 0x38], edx
push 0xfffffffffffffff2
pop eax
lea edx, [edx + ecx*2]
add ecx, ecx
sub eax, ecx
mov dword [ebp + 0x54], edx
mov ecx, dword [ebp + 0x50]
add ecx, eax
mov dword [ebp + 0x50], ecx
cmp ecx, 4
jb 0x1003125e
mov eax, dword [edx]
mov ecx, dword [ebp + 0x78]
bswap eax
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp + 0x68]
test ecx, ecx
je 0x1003111f
test dword [eax + 0x1c], 0xfff
jne 0x1003111f
mov eax, dword [ecx]
lea edx, [ebp + 0x44]
push ebx
push edx
xorps xmm0, xmm0
push ecx
movlpd qword [ebp + 0x44], xmm0
call dword [eax + 0x10]
mov edi, eax
test edi, edi
jne 0x1003121e
mov eax, dword [ebp + 0x68]
mov edi, dword [ebp + 0x58]
cmp dword [eax + 0x1c], 0x80000000
jae 0x1003125e
lea ecx, [eax + 0x18]
call fcn.1002e621
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x38]
mov dword [ebp + 0x48], eax
lea edi, [eax + 0x28]
mov dword [eax], edx
mov edx, dword [ebp + 0x64]
push edi
call fcn.10030738
mov eax, dword [ebp + 0x3c]
cmp eax, 0x20
jne 0x10031184
cmp dword [ebp + 0x50], 0x58
jne 0x1003123e
mov ecx, dword [ebp + 0x54]
mov eax, dword [ecx + 4]
bswap eax
test eax, eax
jne 0x1003123e
mov edi, dword [ebp + 0x48]
lea eax, [ecx + 8]
push eax
lea ecx, [edi + 0x10]
call fcn.100313f3
xor eax, eax
inc eax
mov byte [edi + 4], al
jmp 0x100311d6
push 0x10
pop edi
cmp eax, edi
je 0x10031194
mov eax, dword [ebp + 0x68]
mov byte [eax + 0x45], 1
jmp 0x100311d6
mov edx, dword [ebp + 0x50]
cmp edx, edi
jb 0x1003123e
mov ecx, dword [ebp + 0x54]
mov eax, dword [ecx + 4]
bswap eax
test eax, eax
jne 0x1003123e
mov eax, dword [ecx + 8]
bswap eax
test eax, eax
jne 0x1003123e
mov eax, dword [ecx + 0xc]
sub edx, edi
bswap eax
add ecx, edi
cmp edx, eax
jb 0x1003123e
push eax
push ecx
mov ecx, dword [ebp + 0x48]
lea ecx, [ecx + 8]
call fcn.1000ccb4
mov edi, dword [ebp + 0x58]
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp + 0x34]
inc eax
add edx, 2
mov dword [ebp + 0x30], eax
cmp eax, dword [ebp + 0x20]
mov eax, dword [ebp + 0x40]
mov dword [ebp + 0x34], edx
jb 0x10031026
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x10030fcc
push ebx
call fcn.100f4c7e
push esi
call fcn.100f4c7e
push edi
mov byte [ebp - 4], 3
call fcn.100f4c7e
mov esi, dword [ebp + 0x68]
add esp, 0xc
jmp 0x10031273
push ebx
call fcn.100f4c7e
push esi
call fcn.100f4c7e
push dword [ebp + 0x58]
mov byte [ebp - 4], 3
call fcn.100f4c7e
add esp, 0xc
jmp 0x10030f5e
push ebx
call fcn.100f4c7e
push esi
call fcn.100f4c7e
push dword [ebp + 0x58]
mov byte [ebp - 4], 3
call fcn.100f4c7e
add esp, 0xc
jmp 0x10030f59
push ebx
call fcn.100f4c7e
push esi
call fcn.100f4c7e
push edi
jmp 0x1003124d
xor eax, eax
inc eax
mov byte [esi + 0x44], al
push dword [ebp + 0x78]
lea eax, [ebp - 0x54]
mov ecx, esi
push dword [ebp + 0x74]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.1003003c
mov edi, eax
test edi, edi
jne 0x10030f5e
mov eax, dword [esi + 0x3c]
xor edx, edx
mov ecx, dword [esi + 0x38]
call fcn.100f4dc0
mov dword [esi + 0x60], eax
mov dword [esi + 0x64], edx
jmp 0x10030f60
xor eax, eax
inc eax
pop edi
pop ebx
mov ecx, dword [ebp - 0xc]
pop esi
mov dword fs:[0], ecx
add ebp, 0x6c
leave
ret 8