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

Disassembly:
mov ecx, dword [esi + 0x2330]
mov edx, dword [esi + 0x233c]
sub esp, 0x80
push 0x20
lea eax, [esi + 0x6824]
push eax
push 0x187
push ecx
mov ecx, dword [esi + 0x2338]
call fcn.000355b0
add esp, 0x10
test eax, eax
je 0xa418e
xor eax, eax
add esp, 0x80
ret 8
test byte [esi + 0x23b2], 0x1f
push ebx
je 0xa41b3
lea ebx, [esi + 0x2540]
call fcn.00101b80
test eax, eax
je 0xa41b3
xor eax, eax
pop ebx
add esp, 0x80
ret 8
push ebp
xor ebp, ebp
xor ebx, ebx
cmp dword [esi + 0x2348], ebp
push edi
jbe 0xa44d8
lea edi, [esi + 0x6850]
jmp 0xa41d0
test byte [esi + 0x23b2], 0x1f
je 0xa41e1
or dword [edi], 0x1f
jmp 0xa44c6
test byte [esi + 0x23bb], 0x40
je 0xa42b2
mov ecx, dword [esp + 0x94]
xor edx, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edx
lea eax, [esp + 0xc]
push eax
mov eax, dword [esi + 0x2330]
mov dword [esp + 0x2c], edx
lea edx, [ebx + ecx]
mov ecx, dword [esi + 0x2338]
push 0x357c
push edx
mov edx, dword [esp + 0x9c]
push eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x2c], ebx
call fcn.00035320
add esp, 0x10
test eax, eax
jne 0xa4587
mov ebp, dword [esp + 0x24]
mov ecx, ebp
and cl, 1
sub cl, 1
neg cl
mov edx, ebp
sbb ecx, ecx
add ecx, 1
add ecx, ecx
xor ecx, dword [edi]
and dl, 2
and ecx, 2
mov eax, ecx
xor eax, dword [edi]
xor ecx, ecx
cmp dl, 2
sete cl
mov edx, eax
and al, 0xf6
shr edx, 1
and edx, 1
and ecx, 1
add ecx, ecx
add ecx, ecx
add ecx, ecx
or ecx, edx
or ecx, eax
xor edx, edx
mov eax, ebp
and al, 0x10
cmp al, 0x10
sete dl
mov eax, ecx
shr eax, 1
and eax, 4
and ecx, 0xffffffeb
and edx, 1
shl edx, 4
or edx, eax
or edx, ecx
mov dword [edi], edx
xor ebp, ebp
jmp 0xa44c6
test byte [esi + 0x23bb], 0x20
je 0xa436d
mov eax, dword [esp + 0x94]
xor ecx, ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ecx
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esi + 0x2330]
mov dword [esp + 0x4c], ecx
lea ecx, [ebx + eax]
push 0x307c
push ecx
mov ecx, dword [esi + 0x2338]
push edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x4c], ebx
call fcn.00035320
add esp, 0x10
test eax, eax
jne 0xa4587
mov ebp, dword [esp + 0x44]
mov eax, ebp
and al, 1
sub al, 1
neg al
mov ecx, ebp
sbb eax, eax
add eax, 1
add eax, eax
xor eax, dword [edi]
xor edx, edx
and cl, 2
and eax, 2
xor eax, dword [edi]
cmp cl, 2
sete dl
mov ecx, eax
shr ecx, 1
and ecx, 1
and al, 0xf6
and edx, 1
add edx, edx
add edx, edx
add edx, edx
or edx, ecx
mov ecx, edx
or ecx, eax
mov edx, ecx
shr edx, 1
xor edx, ecx
and edx, 4
xor edx, ecx
mov dword [edi], edx
xor ebp, ebp
jmp 0xa44c6
test byte [esi + 0x23bb], 0x10
je 0xa43ff
mov edx, dword [esp + 0x94]
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
lea ecx, [esp + 0x4c]
push ecx
mov ecx, dword [esi + 0x2330]
mov dword [esp + 0x6c], eax
lea eax, [ebx + edx]
mov edx, dword [esp + 0x94]
push 0x177c
push eax
push ecx
mov ecx, dword [esi + 0x2338]
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x6c], ebx
call fcn.00035320
add esp, 0x10
test eax, eax
jne 0xa4587
mov eax, dword [esp + 0x64]
and al, 1
sub al, 1
neg al
sbb eax, eax
add eax, 1
add eax, eax
xor eax, dword [edi]
and eax, 2
xor eax, dword [edi]
mov edx, eax
shr edx, 1
xor edx, eax
and edx, 1
xor edx, eax
mov dword [edi], edx
jmp 0xa44c6
test byte [esi + 0x23bb], 8
je 0xa4466
mov edx, dword [esp + 0x94]
xor eax, eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
lea ecx, [esp + 0x6c]
push ecx
mov ecx, dword [esi + 0x2330]
mov dword [esp + 0x8c], eax
lea eax, [ebx + edx]
mov edx, dword [esp + 0x94]
push 0x7c
push eax
push ecx
mov ecx, dword [esi + 0x2338]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x8c], ebx
call fcn.00035320
add esp, 0x10
jmp 0xa44be
test byte [esi + 0x23bb], 4
je 0xa447e
mov edx, dword [esp + 0x90]
push edx
mov ecx, 0x67
jmp 0xa44b0
test byte [esi + 0x23bb], 2
je 0xa4496
mov eax, dword [esp + 0x90]
push eax
mov ecx, 0x49
jmp 0xa44b0
test byte [esi + 0x23bb], 1
je 0xa4587
mov ecx, dword [esp + 0x90]
push ecx
mov ecx, 0x46
mov edx, dword [esp + 0x98]
mov eax, esi
call fcn.00095bd0
test eax, eax
jne 0xa4587
add ebx, 1
add edi, 4
cmp ebx, dword [esi + 0x2348]
jb 0xa41d0
xor eax, eax
lea edx, [esi + 0x59d0]
mov edi, edx
mov ecx, 0x4d
rep stosd dword es:[edi], eax
or eax, 0xffffffff
mov edi, edx
mov ecx, 0x20
rep stosd dword es:[edi], eax
mov ecx, 0x20
lea edi, [esi + 0x5a50]
rep stosd dword es:[edi], eax
mov edi, dword [esi + 0x5a8]
mov dword [esi + 0x5af4], eax
mov dword [esi + 0x5af0], eax
mov eax, 0x2a
mov dword [esi + 0x5b00], eax
mov dword [esi + 0x5afc], eax
mov eax, dword [esi + 0x2348]
mov ecx, eax
shl ecx, 4
add ecx, eax
shl ecx, 4
mov edx, ecx
shr ecx, 2
xor eax, eax
mov byte [esi + 0x5af9], 0
mov byte [esi + 0x5af8], 0
rep stosd dword es:[edi], eax
mov ecx, edx
push ebp
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esi + 0x2330]
mov edx, dword [esi + 0x233c]
mov ecx, dword [esi + 0x2338]
push 0x73
push 0xd3d08000
push eax
call fcn.00035320
add esp, 0x10
pop edi
pop ebp
mov eax, 1
pop ebx
add esp, 0x80
ret 8
pop edi
pop ebp
xor eax, eax
pop ebx
add esp, 0x80
ret 8