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

Disassembly:
mov eax, 0x10222bb1
call fcn.10210210
sub esp, 0x40
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x64]
mov ebp, ecx
test edi, edi
je case.0x1015cc3e.63
push dword [esp + 0x68]
call fcn.100531c9
mov ebx, dword [esp + 0x6c]
xor esi, esi
mov edx, dword [ebx]
test edx, edx
je 0x1015c435
mov ecx, dword [edx - 4]
jmp 0x1015c437
mov ecx, esi
test ecx, ecx
je case.0x1015cc3e.63
cmp eax, 0x21
jg 0x1015c9b6
je 0x1015c975
cmp eax, 0xe
jg 0x1015c7b5
je 0x1015c7a6
cmp eax, 4
jg 0x1015c772
je 0x1015c765
sub eax, esi
je 0x1015c758
dec eax
je 0x1015c4ed
dec eax
je 0x1015c489
dec eax
jne case.0x1015cc3e.63
lea ecx, [edi + 0xc]
jmp 0x1015d059
mov ecx, edx
call fcn.100560da
test al, al
je 0x1015c4a6
push str.inherit
lea ecx, [edi + 8]
call fcn.1000243e
jmp case.0x1015c9d1.47
lea eax, [esp + 0x14]
push eax
call fcn.10002ac2
push eax
lea ecx, [esp + 0x68]
mov dword [esp + 0x5c], 5
call fcn.10133c42
lea ecx, [esp + 0x14]
call fcn.100026e7
lea eax, [esp + 0x64]
mov ecx, 0x102b76e0
push eax
call fcn.100669f3
lea ecx, [edi + 8]
push dword [eax]
call fcn.10132f35
lea ecx, [esp + 0x64]
jmp 0x1015c60e
test edx, edx
je 0x1015c4f6
mov eax, dword [edx - 4]
jmp 0x1015c4f8
mov eax, esi
cmp eax, 1
jne 0x1015c626
mov ecx, edx
call fcn.100560da
test al, al
je 0x1015c569
push str.inherit
lea ecx, [edi + 8]
call fcn.1000243e
push 6
pop ebp
push 0xb
pop ebx
lea eax, [esp + 0x40]
mov dword [esp + 0x48], esi
push eax
lea ecx, [edi + 0xc]
mov dword [esp + 0x50], esi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebx
call fcn.1002b04d
mov dword [edi + 0x20], SysReAllocStringLen
lea eax, [esp + 0x40]
or dword [edi + 0x1c], 0xffffffff
lea ecx, [edi + 0x24]
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebx
push eax
call fcn.1002b04d
jmp case.0x1015c9d1.47
lea eax, [esp + 0x18]
push eax
call fcn.10002ac2
push eax
lea ecx, [esp + 0x70]
mov dword [esp + 0x5c], esi
call fcn.10133c42
lea ecx, [esp + 0x18]
mov byte [esp + 0x58], 2
call fcn.100026e7
push str.system
lea ecx, [esp + 0x70]
call fcn.10133b58
test eax, eax
js 0x1015c618
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x68]
push eax
lea edx, [esp + 0x24]
lea ecx, [esp + 0x74]
call fcn.100f2e37
pop ecx
pop ecx
test al, al
je 0x1015c618
lea eax, [esp + 0x6c]
mov ecx, 0x102b8c40
push eax
call fcn.100669f3
lea ecx, [edi + 8]
push dword [eax]
call fcn.10132f35
lea ecx, [edi + 0xc]
call fcn.1002b150
mov eax, dword [esp + 0x1c]
mov ecx, 0x2bc
cmp byte [esp + 0x64], 0
mov dword [edi + 0x10], eax
mov eax, 0x190
cmovne eax, ecx
mov dword [edi + 0xc], 7
mov dword [edi + 0x20], eax
lea ecx, [esp + 0x6c]
movzx eax, byte [esp + 0x68]
mov dword [edi + 0x1c], eax
call fcn.10002371
jmp case.0x1015c9d1.47
or dword [esp + 0x58], 0xffffffff
lea ecx, [esp + 0x6c]
call fcn.10002371
mov ebp, esi
mov dword [esp + 0x64], esi
mov eax, esi
mov ecx, dword [ebx]
test ecx, ecx
je 0x1015c639
mov edx, dword [ecx - 4]
jmp 0x1015c63b
mov edx, esi
cmp ebp, edx
jge 0x1015c66e
lea edx, [eax + ecx]
lea ecx, [edi + 0x20]
call fcn.10059acd
test al, al
jne 0x1015c660
mov edx, dword [ebx]
lea ecx, [edi + 0x1c]
add edx, dword [esp + 0x64]
call fcn.10058349
test al, al
je 0x1015c66e
mov eax, dword [esp + 0x64]
inc ebp
add eax, 0x10
mov dword [esp + 0x64], eax
jmp 0x1015c62e
mov eax, dword [ebx]
test eax, eax
je 0x1015c677
mov esi, dword [eax - 4]
sub esi, ebp
dec esi
je 0x1015c74e
dec esi
je 0x1015c6f1
dec esi
jne case.0x1015c9d1.47
mov esi, ebp
lea ecx, [edi + 0xc]
shl esi, 4
lea edx, [esi + eax]
call fcn.10057aa8
mov edx, dword [ebx]
lea ecx, [edi + 0x24]
add edx, 0x10
add edx, esi
call fcn.10057aa8
lea ecx, [ebp + 2]
shl ecx, 4
lea eax, [esp + 0x24]
add ecx, dword [ebx]
push eax
call fcn.10002ac2
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x5c], 4
call fcn.10133c42
push eax
mov ecx, 0x102b76e0
call fcn.100669f3
lea ecx, [edi + 8]
push dword [eax]
call fcn.10132f35
lea ecx, [esp + 0x20]
call fcn.10002371
lea ecx, [esp + 0x24]
jmp 0x1015c744
shl ebp, 4
lea ecx, [edi + 0xc]
lea edx, [eax + ebp]
call fcn.10057aa8
mov ecx, dword [ebx]
lea eax, [esp + 0x2c]
add ecx, 0x10
add ecx, ebp
push eax
call fcn.10002ac2
push eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0x5c], 3
call fcn.10133c42
push eax
mov ecx, 0x102b76e0
call fcn.100669f3
lea ecx, [edi + 8]
push dword [eax]
call fcn.10132f35
lea ecx, [esp + 0x28]
call fcn.10002371
lea ecx, [esp + 0x2c]
call fcn.100026e7
jmp case.0x1015c9d1.47
add ebp, ebp
lea edx, [eax + ebp*8]
jmp 0x1015c481
lea ecx, [edi + 0x60]
call fcn.1005842b
jmp case.0x1015c9d1.47
lea ecx, [edi + 0x1c]
call fcn.10058349
jmp case.0x1015c9d1.47
sub eax, 6
je 0x1015c799
dec eax
dec eax
je 0x1015c791
sub eax, 5
jne case.0x1015cc3e.63
lea ecx, [edi + 0x40]
call fcn.1005971a
jmp case.0x1015c9d1.47
lea ecx, [edi + 0x24]
jmp 0x1015d059
lea ecx, [edi + 0x20]
call fcn.10059acd
jmp case.0x1015c9d1.47
lea ecx, [edi + 0x34]
mov edx, ebx
call fcn.10058fee
jmp case.0x1015c9d1.47
cmp eax, 0x15
jg 0x1015c816
je 0x1015c809
sub eax, 0xf
je 0x1015c801
dec eax
dec eax
je 0x1015c7f1
dec eax
dec eax
je 0x1015c7e4
dec eax
jne case.0x1015cc3e.63
mov ecx, dword [ebp + 0x2c]
lea edx, [ebp + 0x24]
push ebx
push edi
call fcn.1015c1d2
pop ecx
pop ecx
jmp case.0x1015c9d1.47
lea ecx, [edi + 0x38]
call fcn.1005938f
jmp case.0x1015c9d1.47
lea ecx, [edi + 0x1b8]
call fcn.10059807
jmp case.0x1015c9d1.47
lea ecx, [edi + 0x44]
jmp 0x1015d059
lea ecx, [edi + 0x7c]
call fcn.10058e23
jmp case.0x1015c9d1.47
sub eax, 0x16
je 0x1015c92c
sub eax, 5
je 0x1015c87e
dec eax
jne case.0x1015cc3e.63
lea ecx, [edi + 0x84]
call fcn.10057ea1
mov edx, dword [ebx]
test edx, edx
je 0x1015c841
mov eax, dword [edx - 4]
jmp 0x1015c843
mov eax, esi
cmp eax, 1
jne 0x1015c85b
push esi
push 0x32
lea ecx, [edi + 0x94]
call fcn.10052858
jmp case.0x1015c9d1.47
test edx, edx
je 0x1015c862
mov esi, dword [edx - 4]
cmp esi, 2
jne case.0x1015c9d1.47
add edx, 0x10
lea ecx, [edi + 0x94]
call fcn.10057ea1
jmp case.0x1015c9d1.47
cmp dword [edx + 4], 0x10
jne 0x1015c90a
lea eax, [esp + 0x30]
mov ecx, edx
push eax
call fcn.10002ac2
push eax
lea ecx, [esp + 0x6c]
mov dword [esp + 0x5c], 6
call fcn.10133c42
lea eax, [esp + 0x68]
mov byte [esp + 0x58], 7
push eax
lea edx, [ebp + 0x24]
lea ecx, [esp + 0x68]
call fcn.1018343c
pop ecx
lea ecx, [esp + 0x68]
call fcn.10002371
lea ecx, [esp + 0x30]
mov byte [esp + 0x58], 0xa
call fcn.100026e7
mov ecx, dword [ebp + 0x2c]
lea edx, [esp + 0x64]
push esi
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov ecx, dword [ebp + 0x2c]
lea eax, [esp + 0x64]
push eax
push ecx
lea eax, [esp + 0x40]
add ecx, 0x74
push eax
call fcn.1015c00d
mov ecx, dword [eax]
mov dword [edi + 0x74], ecx
mov eax, dword [eax + 4]
mov dword [edi + 0x78], eax
jmp 0x1015c4e4
cmp dword [edx], 1
jne case.0x1015c9d1.47
cmp dword [edx + 4], 0xafee
jne case.0x1015c9d1.47
or dword [edi + 0x78], 0xffffffff
mov dword [edi + 0x74], esi
jmp case.0x1015c9d1.47
lea ecx, [edi + 0x64]
call fcn.1005aa29
mov edx, dword [ebx]
test edx, edx
je 0x1015c93d
mov esi, dword [edx - 4]
cmp esi, 4
jne 0x1015c964
add edx, 0x10
lea ecx, [edi + 0x68]
call fcn.1005aa29
mov edx, dword [ebx]
lea ecx, [edi + 0x6c]
add edx, 0x20
call fcn.1005aa29
mov edx, dword [ebx]
lea ecx, [edi + 0x70]
add edx, 0x30
jmp 0x1015c9db
mov eax, dword [edi + 0x64]
mov dword [edi + 0x68], eax
mov dword [edi + 0x6c], eax
mov dword [edi + 0x70], eax
jmp case.0x1015c9d1.47
mov ebp, esi
mov dword [esp + 0x64], esi
mov eax, esi
mov ecx, dword [ebx]
test ecx, ecx
je 0x1015c988
mov edx, dword [ecx - 4]
jmp 0x1015c98a
mov edx, esi
cmp ebp, edx
jge case.0x1015c9d1.47
lea edx, [eax + ecx]
lea ecx, [edi + 0x80]
call fcn.1005747b
test al, al
je case.0x1015c9d1.47
mov eax, dword [esp + 0x64]
inc ebp
add eax, 0x10
mov dword [esp + 0x64], eax
jmp 0x1015c97d
cmp eax, 0x3c
jg 0x1015cc1f
je 0x1015cc14
add eax, 0xffffffd7
cmp eax, 0x12
ja case.0x1015cc3e.63
jmp dword [eax*4 + 0x1015d078]
lea ecx, [edi + 0x3c]
call fcn.1005aa29
jmp case.0x1015c9d1.47
push ebx
xor edx, edx
mov ecx, edi
call fcn.1015c0fa
mov eax, dword [edi + 0xe4]
pop ecx
mov dword [edi + 0xe8], eax
lea ecx, [edi + 0xb4]
mov dword [edi + 0xec], eax
mov dword [edi + 0xf0], eax
lea eax, [edi + 0xa4]
push eax
call fcn.1002b04d
push eax
lea ecx, [edi + 0xc4]
call fcn.1002b04d
push eax
lea ecx, [edi + 0xd4]
call fcn.1002b04d
mov eax, dword [edi + 0xf4]
mov dword [edi + 0xf8], eax
mov dword [edi + 0xfc], eax
mov dword [edi + 0x100], eax
jmp case.0x1015c9d1.47
push ebx
push 3
pop edx
mov ecx, edi
call fcn.1015c0fa
jmp 0x1015c7de
lea ecx, [edi + 0xf0]
jmp 0x1015c9db
lea ecx, [edi + 0x100]
call fcn.100560f2
jmp case.0x1015c9d1.47
lea ecx, [edi + 0xd4]
jmp 0x1015d059
test edx, edx
je 0x1015ca8e
mov eax, dword [edx - 4]
jmp 0x1015ca90
mov eax, esi
cmp eax, 1
jne 0x1015cac0
lea ebp, [edi + 0xe4]
mov ecx, ebp
call fcn.1005aa29
test al, al
je 0x1015cac0
mov eax, dword [ebp]
mov dword [edi + 0xe8], eax
mov dword [edi + 0xec], eax
mov dword [edi + 0xf0], eax
jmp case.0x1015c9d1.47
mov edx, dword [ebx]
test edx, edx
je 0x1015cacb
mov eax, dword [edx - 4]
jmp 0x1015cacd
mov eax, esi
cmp eax, 2
jne 0x1015cb11
lea ebp, [edi + 0xe8]
mov ecx, ebp
call fcn.1005aa29
test al, al
je 0x1015cb11
mov edx, dword [ebx]
lea ecx, [edi + 0xe4]
add edx, 0x10
call fcn.1005aa29
test al, al
je 0x1015cb11
mov eax, dword [ebp]
mov dword [edi + 0xf0], eax
mov eax, dword [edi + 0xe4]
mov dword [edi + 0xec], eax
jmp case.0x1015c9d1.47
mov edx, dword [ebx]
test edx, edx
je 0x1015cb1c
mov eax, dword [edx - 4]
jmp 0x1015cb1e
mov eax, esi
cmp eax, 3
jne 0x1015cb5d
lea ecx, [edi + 0xe8]
call fcn.1005aa29
mov edx, dword [ebx]
lea esi, [edi + 0xec]
add edx, 0x10
mov ecx, esi
call fcn.1005aa29
mov edx, dword [ebx]
lea ecx, [edi + 0xf0]
add edx, 0x20
call fcn.1005aa29
mov eax, dword [esi]
mov dword [edi + 0xe4], eax
jmp case.0x1015c9d1.47
test edx, edx
je 0x1015cb64
mov esi, dword [edx - 4]
cmp esi, 4
jne case.0x1015c9d1.47
lea ecx, [edi + 0xe8]
call fcn.1005aa29
mov edx, dword [ebx]
lea ecx, [edi + 0xec]
add edx, 0x10
call fcn.1005aa29
mov edx, dword [ebx]
lea ecx, [edi + 0xf0]
add edx, 0x20
call fcn.1005aa29
mov edx, dword [ebx]
add edx, 0x30
lea ecx, [edi + 0xe4]
jmp 0x1015c9db
push ebx
xor edx, edx
jmp 0x1015ca53
lea ecx, [edi + 0xf4]
jmp 0x1015ca70
push ebx
push 2
jmp 0x1015ca52
lea ecx, [edi + 0xec]
jmp 0x1015c9db
lea ecx, [edi + 0xfc]
jmp 0x1015ca70
lea ecx, [edi + 0xc4]
jmp 0x1015d059
lea esi, [edi + 0xf4]
mov ecx, esi
call fcn.100560f2
test al, al
je case.0x1015c9d1.47
mov eax, dword [esi]
jmp 0x1015ca38
xor edx, edx
push ebx
inc edx
jmp 0x1015ca53
lea ecx, [edi + 0xe8]
jmp 0x1015c9db
lea ecx, [edi + 0xf8]
jmp 0x1015ca70
mov ecx, 0x82
cmp eax, ecx
jg case.0x1015cc3e.63
je 0x1015d053
add eax, 0xffffffc3
cmp eax, 0x13
ja case.0x1015cc3e.63
jmp dword [eax*4 + 0x1015d0c4]
lea ecx, [edi + 0x194]
jmp 0x1015d059
lea ecx, [edi + 0x184]
jmp 0x1015d059
lea ecx, [edi + 0xb4]
jmp 0x1015d059
test edx, edx
je 0x1015cc6d
mov esi, dword [edx - 4]
dec esi
je 0x1015cd2c
dec esi
je 0x1015ccf5
dec esi
je 0x1015ccbc
dec esi
jne case.0x1015c9d1.47
lea ecx, [edi + 0xb4]
call fcn.10057aa8
mov edx, dword [ebx]
lea ecx, [edi + 0xc4]
add edx, 0x10
call fcn.10057aa8
mov edx, dword [ebx]
lea ecx, [edi + 0xd4]
add edx, 0x20
call fcn.10057aa8
mov edx, dword [ebx]
add edx, 0x30
lea ecx, [edi + 0xa4]
jmp 0x1015d059
lea ecx, [edi + 0xb4]
call fcn.10057aa8
mov edx, dword [ebx]
lea esi, [edi + 0xc4]
add edx, 0x10
mov ecx, esi
call fcn.10057aa8
mov edx, dword [ebx]
lea ecx, [edi + 0xd4]
add edx, 0x20
call fcn.10057aa8
push esi
lea ecx, [edi + 0xa4]
jmp 0x1015c55f
lea esi, [edi + 0xb4]
mov ecx, esi
call fcn.10057aa8
push esi
lea ecx, [edi + 0xd4]
call fcn.1002b04d
mov edx, dword [ebx]
lea esi, [edi + 0xa4]
add edx, 0x10
mov ecx, esi
call fcn.10057aa8
push esi
lea ecx, [edi + 0xc4]
jmp 0x1015c55f
lea esi, [edi + 0xa4]
mov ecx, esi
call fcn.10057aa8
test al, al
je case.0x1015c9d1.47
push esi
lea ecx, [edi + 0xb4]
call fcn.1002b04d
push eax
lea ecx, [edi + 0xc4]
call fcn.1002b04d
lea ecx, [edi + 0xd4]
jmp 0x1015c55e
mov ecx, edx
call fcn.100560af
test al, al
je 0x1015cd7a
mov dword [edi + 0x1b4], esi
jmp case.0x1015c9d1.47
call fcn.100560da
test al, al
je 0x1015cd92
mov dword [edi + 0x1b4], SysReAllocStringLen
jmp case.0x1015c9d1.47
lea eax, [esp + 0x34]
push eax
call fcn.10002ac2
push eax
lea ecx, [esp + 0x6c]
mov dword [esp + 0x5c], 0xb
call fcn.10133c42
lea ecx, [esp + 0x34]
call fcn.100026e7
mov esi, dword [esp + 0x68]
add esi, 0xc
push 0x1025c678
push esi
call fcn.1020f915
neg eax
pop ecx
sbb al, al
pop ecx
inc al
je 0x1015cddf
mov dword [edi + 0x1b4], 1
jmp 0x1015cdfe
push 0x1025c690
push esi
call fcn.1020f915
neg eax
pop ecx
sbb al, al
pop ecx
inc al
je 0x1015cdfe
mov dword [edi + 0x1b4], 2
lea ecx, [esp + 0x68]
jmp 0x1015c60e
test edx, edx
je 0x1015ce0e
mov esi, dword [edx - 4]
dec esi
je 0x1015cecd
dec esi
je 0x1015ce96
dec esi
je 0x1015ce5d
dec esi
jne case.0x1015c9d1.47
lea ecx, [edi + 0x154]
call fcn.10057aa8
mov edx, dword [ebx]
lea ecx, [edi + 0x164]
add edx, 0x10
call fcn.10057aa8
mov edx, dword [ebx]
lea ecx, [edi + 0x174]
add edx, 0x20
call fcn.10057aa8
mov edx, dword [ebx]
add edx, 0x30
lea ecx, [edi + 0x144]
jmp 0x1015d059
lea ecx, [edi + 0x154]
call fcn.10057aa8
mov edx, dword [ebx]
lea esi, [edi + 0x164]
add edx, 0x10
mov ecx, esi
call fcn.10057aa8
mov edx, dword [ebx]
lea ecx, [edi + 0x174]
add edx, 0x20
call fcn.10057aa8
push esi
lea ecx, [edi + 0x144]
jmp 0x1015c55f
lea esi, [edi + 0x154]
mov ecx, esi
call fcn.10057aa8
push esi
lea ecx, [edi + 0x174]
call fcn.1002b04d
mov edx, dword [ebx]
lea esi, [edi + 0x144]
add edx, 0x10
mov ecx, esi
call fcn.10057aa8
push esi
lea ecx, [edi + 0x164]
jmp 0x1015c55f
lea esi, [edi + 0x144]
mov ecx, esi
call fcn.10057aa8
test al, al
je case.0x1015c9d1.47
push esi
lea ecx, [edi + 0x154]
call fcn.1002b04d
push eax
lea ecx, [edi + 0x164]
call fcn.1002b04d
lea ecx, [edi + 0x174]
jmp 0x1015c55e
lea ecx, [edi + 0x174]
jmp 0x1015d059
lea ecx, [edi + 0x164]
jmp 0x1015d059
lea ecx, [edi + 0x154]
jmp 0x1015d059
test edx, edx
je 0x1015cf2d
mov esi, dword [edx - 4]
dec esi
je 0x1015cfec
dec esi
je 0x1015cfb5
dec esi
je 0x1015cf7c
dec esi
jne case.0x1015c9d1.47
lea ecx, [edi + 0x114]
call fcn.10057aa8
mov edx, dword [ebx]
lea ecx, [edi + 0x124]
add edx, 0x10
call fcn.10057aa8
mov edx, dword [ebx]
lea ecx, [edi + 0x134]
add edx, 0x20
call fcn.10057aa8
mov edx, dword [ebx]
add edx, 0x30
lea ecx, [edi + 0x104]
jmp 0x1015d059
lea ecx, [edi + 0x114]
call fcn.10057aa8
mov edx, dword [ebx]
lea esi, [edi + 0x124]
add edx, 0x10
mov ecx, esi
call fcn.10057aa8
mov edx, dword [ebx]
lea ecx, [edi + 0x134]
add edx, 0x20
call fcn.10057aa8
push esi
lea ecx, [edi + 0x104]
jmp 0x1015c55f
lea esi, [edi + 0x114]
mov ecx, esi
call fcn.10057aa8
push esi
lea ecx, [edi + 0x134]
call fcn.1002b04d
mov edx, dword [ebx]
lea esi, [edi + 0x104]
add edx, 0x10
mov ecx, esi
call fcn.10057aa8
push esi
lea ecx, [edi + 0x124]
jmp 0x1015c55f
lea esi, [edi + 0x104]
mov ecx, esi
call fcn.10057aa8
push esi
lea ecx, [edi + 0x114]
call fcn.1002b04d
push eax
lea ecx, [edi + 0x124]
call fcn.1002b04d
lea ecx, [edi + 0x134]
jmp 0x1015c55e
lea ecx, [edi + 0x134]
jmp 0x1015d059
lea ecx, [edi + 0x124]
jmp 0x1015d059
lea ecx, [edi + 0x114]
jmp 0x1015d059
mov edx, ebx
mov ecx, edi
call fcn.1015c385
jmp case.0x1015c9d1.47
lea ecx, [edi + 0x58]
call fcn.10058f1e
jmp case.0x1015c9d1.47
lea ecx, [edi + 0x5c]
call fcn.100580cd
jmp case.0x1015c9d1.47
lea ecx, [edi + 0x1a4]
call fcn.10057aa8
mov al, 1
jmp 0x1015d064
xor al, al
mov ecx, dword [esp + 0x50]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
leave
ret 0xc