Function at 0x10004030
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
mov eax, dword [0x1014bb94]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
test edi, edi
je 0x10004c11
mov ecx, edi
call fcn.1009ee40
cmp eax, 0x1253
jne 0x10004c11
lea ebx, [esi + 0xec]
push ebx
call fcn.10002310
add esp, 4
test eax, eax
jne 0x10004092
lea ecx, [esi + 0xd0]
call fcn.10003420
test eax, eax
jne 0x10004092
push 1
push ebx
call fcn.10002330
add esp, 8
cmp dword [esi + 0xc], 0
je 0x10004be0
lea eax, [esi + 0x10]
test eax, eax
je 0x10004be0
cmp dword [eax], 0x9c
jne 0x10004be0
cmp dword [eax + 4], 0
jne 0x10004be0
cmp dword [eax + 8], 0
je 0x10004be0
cmp dword [eax + 0xc], 0
je 0x10004be0
cmp dword [eax + 0x10], 0
je 0x10004be0
cmp dword [eax + 0x14], 0
je 0x10004be0
cmp dword [eax + 0x18], 0
je 0x10004be0
cmp dword [eax + 0x1c], 0
je 0x10004be0
cmp dword [eax + 0x20], 0
je 0x10004be0
cmp dword [eax + 0x24], 0
je 0x10004be0
cmp dword [eax + 0x28], 0
je 0x10004be0
cmp dword [eax + 0x2c], 0
je 0x10004be0
cmp dword [eax + 0x30], 0
je 0x10004be0
cmp dword [eax + 0x34], 0
je 0x10004be0
cmp dword [eax + 0x38], 0
je 0x10004be0
cmp dword [eax + 0x3c], 0
je 0x10004be0
cmp dword [eax + 0x40], 0
je 0x10004be0
cmp dword [eax + 0x44], 0
je 0x10004be0
cmp dword [eax + 0x48], 0
je 0x10004be0
cmp dword [eax + 0x4c], 0
je 0x10004be0
cmp dword [eax + 0x50], 0
je 0x10004be0
cmp dword [eax + 0x54], 0
je 0x10004be0
cmp dword [eax + 0x58], 0
je 0x10004be0
cmp dword [eax + 0x5c], 0
je 0x10004be0
cmp dword [eax + 0x60], 0
je 0x10004be0
cmp dword [eax + 0x64], 0
je 0x10004be0
cmp dword [eax + 0x68], 0
je 0x10004be0
cmp dword [eax + 0x6c], 0
je 0x10004be0
cmp dword [eax + 0x70], 0
je 0x10004be0
cmp dword [eax + 0x74], 0
je 0x10004be0
cmp dword [eax + 0x78], 0
je 0x10004be0
cmp dword [eax + 0x7c], 0
je 0x10004be0
cmp dword [eax + 0x80], 0
je 0x10004be0
cmp dword [eax + 0x84], 0
je 0x10004be0
cmp dword [eax + 0x88], 0
je 0x10004be0
cmp dword [eax + 0x8c], 0
je 0x10004be0
cmp dword [eax + 0x90], 0
je 0x10004be0
cmp dword [eax + 0x94], 0
je 0x10004be0
cmp dword [eax + 0x98], 0
je 0x10004be0
xorps xmm0, xmm0
lea ecx, [ebp - 0x60]
push 0
push 0x1303
movups xmmword [ebp - 0x60], xmm0
movq qword [ebp - 0x50], xmm0
call fcn.1009d390
xorps xmm0, xmm0
lea ecx, [ebp - 0x10c]
movups xmmword [ebp - 0x10c], xmm0
movups xmmword [ebp - 0xfc], xmm0
movq qword [ebp - 0xec], xmm0
call fcn.1009e100
lea eax, [ebp - 0x10c]
mov ecx, edi
push eax
push 0x1250
call fcn.10001fb0
test eax, eax
jne 0x100042a1
xor edi, edi
jmp 0x10004bcb
xorps xmm0, xmm0
lea ecx, [ebp - 0x48]
movlpd qword [ebp - 0x48], xmm0
call fcn.1009ee90
push 0
lea eax, [ebp - 0x48]
push eax
push 0xa0001d7
lea ecx, [ebp - 0x10c]
call fcn.1009e3e0
test eax, eax
je 0x10004bbb
xorps xmm0, xmm0
lea ecx, [ebp - 0x34]
lea ebx, [esi + 0xf0]
movq qword [ebp - 0x14], xmm0
movups xmmword [ebp - 0x34], xmm0
movups xmmword [ebp - 0x24], xmm0
call fcn.1009e100
lea eax, [ebp - 0x48]
push eax
push 0x1275
lea ecx, [ebp - 0x34]
call fcn.1009e1e0
test eax, eax
je 0x10004bb3
push 0
push ebx
push 0xa000257
lea ecx, [ebp - 0x34]
call fcn.1009e3e0
test eax, eax
je 0x10004bb3
push 0
lea eax, [ebx + 8]
push eax
push 0xa000258
lea ecx, [ebp - 0x34]
call fcn.1009e3e0
test eax, eax
je 0x10004bb3
lea ecx, [ebp - 0x34]
call fcn.1009e170
lea ebx, [esi + 0x10c]
mov ecx, edi
push ebx
push 0x20001e1
call fcn.10002090
test eax, eax
je 0x10004bbb
mov ecx, dword [ebx]
mov eax, ecx
mov edx, dword [ebx + 4]
or eax, edx
je 0x10004bbb
mov ebx, dword [esi + 8]
mov eax, ebx
sub eax, 8
je 0x1000437a
sub eax, 1
jne 0x10004393
push 0x3e8
call fcn.1009c9d0
mov ebx, dword [esi + 8]
add esp, 4
mov ecx, eax
xor edx, edx
add ecx, 1
adc edx, edx
add ebx, 0xfffffffd
mov dword [esi + 0x114], ecx
mov dword [esi + 0x118], edx
cmp ebx, 6
ja case.0x100043ab.6
jmp dword [ebx*4 + 0x10004c28]
xorps xmm0, xmm0
lea ecx, [ebp - 0x34]
movups xmmword [ebp - 0x34], xmm0
movups xmmword [ebp - 0x24], xmm0
movq qword [ebp - 0x14], xmm0
call fcn.1009e100
lea eax, [ebp - 0x34]
mov ecx, edi
push eax
push 0x1331
call fcn.10001fb0
test eax, eax
je 0x100043f5
lea eax, [esi + 0x184]
push eax
lea ecx, [ebp - 0x34]
call fcn.1009eca0
test eax, eax
je 0x10004bb3
xorps xmm0, xmm0
lea eax, [ebp - 0xc]
movlpd qword [ebp - 0xc], xmm0
mov ecx, edi
push dword [ebp - 8]
push dword [ebp - 0xc]
push 0x1000361
push eax
call fcn.10001f10
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0x1c0], ecx
lea ecx, [ebp - 0x34]
mov dword [esi + 0x1c4], eax
call fcn.1009e170
jmp case.0x100043ab.6
lea eax, [ebp - 0xc]
mov ecx, edi
push eax
push 0x200030b
call fcn.10002090
test eax, eax
je 0x100044ac
lea edx, [esi + 0x11c]
nop dword [eax + eax]
mov ecx, dword [ebp - 8]
mov ebx, dword [ebp - 0xc]
push 1
sub esp, 8
mov dword [ebp - 0x110], ecx
mov eax, esp
mov dword [eax + 4], ecx
mov ecx, edx
mov dword [eax], ebx
call fcn.10002e60
test eax, eax
je 0x10004bbb
cmp dword [esi + 0x128], 1
jne 0x10004492
mov eax, dword [ebp - 0x110]
mov dword [esi + 0x114], ebx
mov dword [esi + 0x118], eax
lea eax, [ebp - 0xc]
mov ecx, edi
push eax
push 0x200030b
call fcn.1009e810
lea edx, [esi + 0x11c]
test eax, eax
jne 0x10004450
lea eax, [esi + 0x120]
cmp dword [eax], eax
je 0x10004bbb
lea eax, [esi + 0x148]
mov ecx, edi
push eax
push 0x2000322
call fcn.10002090
xorps xmm0, xmm0
lea eax, [ebp - 0xc]
movlpd qword [ebp - 0xc], xmm0
mov ecx, edi
push dword [ebp - 8]
push dword [ebp - 0xc]
push 0x1000361
push eax
call fcn.10001f10
xorps xmm0, xmm0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
movlpd qword [ebp - 0xc], xmm0
push dword [ebp - 8]
mov dword [esi + 0x1c4], eax
lea eax, [ebp - 0xc]
push dword [ebp - 0xc]
mov dword [esi + 0x1c0], ecx
mov ecx, edi
push 0x100036b
push eax
call fcn.10001f10
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0x1cc], eax
lea eax, [esi + 0x1d0]
push eax
mov dword [esi + 0x1c8], ecx
mov ecx, edi
push 0xb00036e
call fcn.100020b0
test eax, eax
je 0x10004bbb
push 0
push 0xb00036f
mov ecx, edi
call fcn.10001e90
test eax, eax
setne al
mov byte [esi + 0x1d1], al
jmp case.0x100043ab.6
lea eax, [ebp - 0xc]
xorps xmm0, xmm0
push eax
push 0x200027b
mov ecx, edi
movlpd qword [ebp - 0xc], xmm0
call fcn.10002090
test eax, eax
je case.0x100043ab.6
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov dword [esi + 0x114], eax
mov dword [esi + 0x118], ecx
lea eax, [esi + 0x120]
cmp dword [eax], eax
jne 0x100045c4
mov ecx, dword [esi + 0x110]
mov eax, dword [esi + 0x10c]
push 1
sub esp, 8
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esi + 0x11c]
mov dword [edx], eax
call fcn.10002e60
test eax, eax
je 0x10004bbb
xorps xmm0, xmm0
mov dword [ebp - 0x64], 0
lea ecx, [ebp - 0x6c]
movq qword [ebp - 0x6c], xmm0
call fcn.1009caa0
lea eax, [ebp - 0x6c]
mov ecx, edi
push eax
push 0x30001e2
call fcn.10001fd0
test eax, eax
je 0x100045fe
lea eax, [ebp - 0x6c]
push eax
lea ecx, [esi + 0x100]
call fcn.1009d0d0
mov eax, dword [esi + 8]
cmp eax, 0xa
je 0x1000463d
add eax, 0xfffffffd
cmp eax, 6
ja case.0x10004619.5
movzx eax, byte [eax + 0x10004c50]
jmp dword [eax*4 + 0x10004c44]
push 0
lea eax, [esi + 0x12c]
mov ecx, edi
push eax
push 0xa0001c8
call fcn.1009e3e0
test eax, eax
je 0x100049bd
xorps xmm0, xmm0
lea ecx, [ebp - 0xe4]
movups xmmword [ebp - 0xe4], xmm0
movups xmmword [ebp - 0xd4], xmm0
movq qword [ebp - 0xc4], xmm0
call fcn.1009e100
lea eax, [ebp - 0xe4]
mov ecx, edi
push eax
push 0x122f
call fcn.10001fb0
test eax, eax
je 0x10004b9c
lea eax, [esi + 0x134]
push eax
lea ecx, [ebp - 0xe4]
call fcn.1009ec10
test eax, eax
je 0x10004b9c
lea ebx, [esi + 0x13c]
push ebx
push 0x100023b
lea ecx, [ebp - 0xe4]
call fcn.10002010
test eax, eax
je 0x10004b9c
push 0x1f
push ebx
call fcn.10001e80
add esp, 8
cmp dword [ebx], 0
je 0x10004b9c
lea eax, [ebp - 0x110]
mov dword [ebp - 0x110], 0
push eax
push 0x100025a
lea ecx, [ebp - 0xe4]
call fcn.10002050
test eax, eax
je 0x10004b9c
push dword [ebp - 0x110]
lea ecx, [ebp - 0x60]
push 0x100025a
call fcn.1009da20
test eax, eax
je 0x10004b9c
lea ebx, [esi + 0x150]
push edi
mov ecx, ebx
call fcn.1009fac0
test eax, eax
je 0x10004b9c
mov ecx, ebx
call fcn.1009f1a0
test eax, eax
je 0x10004746
push 1
push ebx
push 0x126e
lea ecx, [ebp - 0x60]
call fcn.1009d790
test eax, eax
je 0x10004b9c
lea ebx, [esi + 0x140]
mov ecx, edi
push ebx
push 0x100025d
call fcn.10001ef0
test eax, eax
jne 0x10004763
mov dword [ebx], 0xffffffff
lea eax, [ebp - 0x110]
mov dword [ebp - 0x110], 0
push eax
push 0x10001ea
mov ecx, edi
call fcn.10001ef0
test eax, eax
je 0x10004790
mov eax, dword [ebp - 0x110]
mov dword [esi + 0x158], eax
cmp dword [esi + 8], 5
jne 0x100047b9
lea eax, [ebp - 0x110]
mov ecx, edi
push eax
push 0x10001eb
call fcn.10001ef0
test eax, eax
je 0x100047b9
mov eax, dword [ebp - 0x110]
mov dword [esi + 0x15c], eax
xorps xmm0, xmm0
lea ecx, [ebp - 0xbc]
movups xmmword [ebp - 0xbc], xmm0
movups xmmword [ebp - 0xac], xmm0
movq qword [ebp - 0x9c], xmm0
call fcn.1009e100
lea eax, [ebp - 0xbc]
mov ecx, edi
push eax
push 0x1286
call fcn.10001fb0
test eax, eax
je 0x10004b8d
lea eax, [esi + 0x174]
push eax
push 0x10001ec
lea ecx, [ebp - 0xbc]
call fcn.10002030
test eax, eax
je 0x10004b8d
lea eax, [esi + 0x178]
push eax
push 0x30001ed
lea ecx, [ebp - 0xbc]
call fcn.10001fd0
test eax, eax
je 0x10004b8d
lea eax, [esi + 0x16c]
push eax
lea ecx, [ebp - 0xbc]
call fcn.1009eca0
test eax, eax
je 0x10004b8d
push 0
lea eax, [ebp - 0xbc]
push eax
push 0x1286
lea ecx, [ebp - 0x60]
call fcn.1009d740
test eax, eax
je 0x10004b8d
push str.EF2028CD_09C7_417E_8976_B1F86EBB90E2
push 0x3000331
lea ecx, [ebp - 0x60]
call fcn.1009dbb0
test eax, eax
je 0x10004b8d
lea eax, [ebp - 0x110]
mov dword [ebp - 0x110], 1
push eax
push 0x100028d
mov ecx, edi
call fcn.10001ef0
test eax, eax
je 0x10004b8d
push dword [ebp - 0x110]
lea ecx, [ebp - 0x60]
push 0x100028d
call fcn.1009da20
test eax, eax
je 0x10004b8d
xorps xmm0, xmm0
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0x40]
movq qword [ebp - 0x40], xmm0
call fcn.1009caa0
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
push 0x300028c
call fcn.10001fd0
test eax, eax
je 0x10004930
lea ecx, [ebp - 0x40]
call fcn.1009cbc0
push eax
push 0x300028c
lea ecx, [ebp - 0x60]
call fcn.1009dbb0
test eax, eax
je 0x10004b76
lea ecx, [ebp - 0x40]
call fcn.1009cbc0
push eax
mov ecx, esi
call fcn.10003ab0
lea eax, [ebp - 0x40]
push eax
lea ecx, [esi + 0x160]
call fcn.1009cb30
cmp dword [esi + 8], 9
jne 0x10004acf
xorps xmm0, xmm0
lea ecx, [ebp - 0x34]
movups xmmword [ebp - 0x34], xmm0
movups xmmword [ebp - 0x24], xmm0
movq qword [ebp - 0x14], xmm0
call fcn.1009e100
lea eax, [ebp - 0x34]
mov ecx, edi
push eax
push 0x1319
call fcn.10001fb0
test eax, eax
je case.default.0x10004999
lea ebx, [esi + 0x190]
push ebx
push 0x100030c
lea ecx, [ebp - 0x34]
call fcn.10002070
test eax, eax
je case.default.0x10004999
mov eax, dword [ebx]
dec eax
cmp eax, 9
ja case.default.0x10004999
movzx eax, byte [eax + 0x10004c60]
jmp dword [eax*4 + 0x10004c58]
push 0
lea eax, [esi + 0x12c]
mov ecx, edi
push eax
push 0xa0001c7
call fcn.1009e3e0
test eax, eax
jne 0x1000463d
lea ecx, [ebp - 0x6c]
xor edi, edi
call fcn.1009cac0
jmp 0x10004bbd
lea eax, [esi + 0x194]
push eax
lea ecx, [ebp - 0x34]
call fcn.1009ec10
test eax, eax
jne 0x10004ac7
lea ecx, [ebp - 0x34]
call fcn.1009e170
lea ecx, [ebp - 0x40]
xor edi, edi
call fcn.1009cac0
lea ecx, [ebp - 0xbc]
call fcn.1009e170
jmp 0x10004b9e
lea eax, [esi + 0x194]
push eax
lea ecx, [ebp - 0x34]
call fcn.1009ec10
test eax, eax
je case.default.0x10004999
xorps xmm0, xmm0
lea ecx, [ebp - 0x94]
movups xmmword [ebp - 0x94], xmm0
movups xmmword [ebp - 0x84], xmm0
movq qword [ebp - 0x74], xmm0
call fcn.1009e100
lea eax, [ebp - 0x94]
mov ecx, edi
push eax
push 0x131b
call fcn.10001fb0
test eax, eax
je 0x10004b63
lea eax, [esi + 0x19c]
push eax
push 0x3000306
lea ecx, [ebp - 0x94]
call fcn.10001fd0
test eax, eax
je 0x10004b63
lea eax, [esi + 0x1a8]
push eax
push 0xb00033f
lea ecx, [ebp - 0x94]
call fcn.100020b0
test eax, eax
je 0x10004b63
lea eax, [ebp - 0x94]
push eax
push 0x800030d
lea ecx, [esi + 0x1ac]
call fcn.1009f4e0
test eax, eax
jne 0x10004abc
lea ecx, [esi + 0x1ac]
call fcn.1009f480
lea ecx, [ebp - 0x94]
call fcn.1009e170
lea ecx, [ebp - 0x34]
call fcn.1009e170
lea ebx, [esi + 0x144]
mov ecx, edi
push ebx
push 0x1000334
call fcn.10001ff0
test eax, eax
jne 0x10004aec
mov dword [ebx], 0xffffffff
lea ebx, [esi + 0x1bc]
mov ecx, edi
push ebx
push 0xb000342
call fcn.100020b0
test eax, eax
jne 0x10004b05
mov byte [ebx], al
push dword [esi + 8]
lea ecx, [ebp - 0x60]
push 0x10001f0
call fcn.1009da20
test eax, eax
je 0x10004b76
push dword [esi + 0x110]
lea ecx, [ebp - 0x60]
push dword [esi + 0x10c]
push 0x20001e1
call fcn.1009da90
test eax, eax
je 0x10004b76
lea eax, [esi + 0x1b4]
push eax
lea ecx, [ebp - 0x60]
call fcn.1009dd80
test eax, eax
je 0x10004b76
lea ecx, [ebp - 0x40]
mov edi, 1
call fcn.1009cac0
lea ecx, [ebp - 0xbc]
call fcn.1009e170
jmp 0x10004b9e
lea ecx, [ebp - 0x94]
call fcn.1009e170
lea ecx, [ebp - 0x34]
call fcn.1009e170
lea ecx, [ebp - 0x40]
xor edi, edi
call fcn.1009cac0
lea ecx, [ebp - 0xbc]
call fcn.1009e170
jmp 0x10004b9e
lea ecx, [ebp - 0xbc]
xor edi, edi
call fcn.1009e170
jmp 0x10004b9e
xor edi, edi
lea ecx, [ebp - 0xe4]
call fcn.1009e170
lea ecx, [ebp - 0x6c]
call fcn.1009cac0
jmp 0x10004bbd
lea ecx, [ebp - 0x34]
call fcn.1009e170
xor edi, edi
lea ecx, [ebp - 0x48]
call fcn.1009eea0
lea ebx, [esi + 0xec]
lea ecx, [ebp - 0x10c]
call fcn.1009e170
lea ecx, [ebp - 0x60]
call fcn.1009d3c0
jmp 0x10004be2
xor edi, edi
lea ecx, [esi + 0xd0]
call fcn.10003780
test eax, eax
jne 0x10004bfc
push 1
push ebx
call fcn.10002330
add esp, 8
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100e3d0f
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100e3d0f
mov esp, ebp
pop ebp
ret 4