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

Disassembly:
add esp, 4
add ebx, 0x13807
pop ebx
push ecx
jmp 0x10003ee8
or ecx, 0x15e9
pop ecx
cmp dword [ebp - 0xe38], 0
jne 0x10003f07
mov dword [ebp - 0x854], 0
jmp 0x10004152
mov edx, dword [ebp - 0xe38]
mov dword [ebp - 0x580], edx
push edx
push ecx
add esp, 4
call 0x10003f27
add byte [edx + 0x42], cl
cmp al, 0x46
inc ebx
cmp esi, dword [edi + esi]
cmp dword [ebx - 0x157efb3c], eax
fnstcw word [esi]
add byte [eax], al
sub edx, 0x12fcf
and edx, 0x2b16
pop edx
push ecx
and ecx, 0x8058
pop ecx
lea eax, [ebp - 0x1980]
mov dword [ebp - 0xe34], eax
mov ecx, dword [ebp - 0x580]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xe30], edx
xor eax, eax
mov word [ebp - 0x1f8], ax
xor ecx, ecx
mov word [ebp - 0x30], cx
push ecx
push eax
add esp, 4
xor ecx, 0x5db
pop ecx
push ecx
push edx
add esp, 4
and ecx, 0x10e72
and ecx, 0x6151
and ecx, 0xda51
and ecx, 0x10f1d
pop ecx
push edx
xor edx, 0x1dca
pop edx
mov edx, dword [ebp - 0xe30]
mov ax, word [edx]
mov word [ebp - 0x1226], ax
mov ecx, dword [ebp - 0xe30]
add ecx, 2
mov dword [ebp - 0xe30], ecx
mov dx, word [ebp - 0x1226]
mov word [ebp - 0x1f8], dx
mov eax, dword [ebp - 0xe34]
mov cx, word [eax]
mov word [ebp - 0x1228], cx
mov edx, dword [ebp - 0xe34]
add edx, 2
mov dword [ebp - 0xe34], edx
mov ax, word [ebp - 0x1228]
mov word [ebp - 0x30], ax
push esi
push eax
add esp, 4
add esi, 0xe03e
jmp 0x10004009
pop esi
push ecx
call 0x10004017
add byte [esi + 0x34], al
dec ebp
dec eax
aaa
add esp, 4
call 0x10004026
add byte [esi + 0x32], cl
inc ecx
xor al, 0x45
inc ecx
add esp, 4
pop ecx
movzx ecx, word [ebp - 0x30]
test ecx, ecx
jne 0x10004047
movzx edx, word [ebp - 0x1f8]
movzx eax, word [ebp - 0x30]
sub edx, eax
mov dword [ebp - 0x184c], edx
jmp 0x100040a1
movzx ecx, word [ebp - 0x1f8]
movzx edx, word [ebp - 0x30]
cmp ecx, edx
je 0x10003f6f
movzx eax, word [ebp - 0x1f8]
xor eax, 0x20
movzx ecx, word [ebp - 0x30]
cmp eax, ecx
je 0x10003f6f
movzx edx, word [ebp - 0x1f8]
movzx eax, word [ebp - 0x30]
cmp edx, eax
jge 0x1000408b
mov dword [ebp - 0x1848], 0xffffffff
jmp 0x10004095
mov dword [ebp - 0x1848], 1
mov ecx, dword [ebp - 0x1848]
mov dword [ebp - 0x184c], ecx
cmp dword [ebp - 0x184c], 0
jne 0x100040ea
push eax
push ebx
add esp, 4
or eax, 0x124f1
and eax, 0x9db6
pop eax
push eax
jmp 0x100040c2
jmp 0x100040c9
call 0x100040d8
add byte [ebp + 0x50], cl
inc ebx
xor dl, byte [eax + 0x48]
inc edi
dec ebx
add esp, 4
pop eax
mov edx, dword [ebp - 0x580]
mov dword [ebp - 0x854], edx
jmp 0x10004152
push esi
call 0x100040fb
add byte [ebx], dh
inc edx
cmp dh, byte [edx]
inc ebx
xor edi, dword [eax]
aaa
inc edi
push eax
add esp, 4
pop esi
push ecx
push edx
add esp, 4
jmp 0x1000410d
pop ecx
push ebx
add ebx, 0x6f42
add ebx, 0x8ee3
pop ebx
mov eax, dword [ebp - 0x580]
mov ecx, dword [eax]
mov dword [ebp - 0x580], ecx
mov edx, dword [ebp - 0x580]
cmp edx, dword [ebp - 0xe38]
je 0x10004148
mov eax, dword [ebp - 0x580]
cmp dword [eax + 0x30], 0
jne 0x10003f13
mov dword [ebp - 0x854], 0
push edi
push ecx
add esp, 4
and edi, 0x136cc
call 0x1000416c
add byte [edx + 0x50], al
dec edx
dec ebx
inc esi
xor eax, 0x833e4448
les eax, [ecx + eax*4]
out dx, eax
or edi, dword [edi]
add byte [edi + 0x53], bl
xor ebx, 0x11c3a
sub ebx, 0x4d9d
pop ebx
cmp dword [ebp - 0x854], 0
jne 0x100041ce
push esi
push ebx
add esp, 4
or esi, 0x3676
and esi, 0x634e
or esi, 0xc3c6
or esi, 0xd7d1
pop esi
push edi
push ebx
add esp, 4
and edi, 0x1716a
pop edi
push eax
or eax, 0x6ae9
pop eax
mov dword [ebp - 0xbf8], 0
jmp 0x10004cf6
push edi
push eax
add esp, 4
sub edi, 0xc9aa
xor edi, 0xa71f
and edi, 0x109a5
or edi, 0x27d
pop edi
push ecx
xor ecx, 0x1012d
and ecx, 0x65ae
xor ecx, 0xdd2
pop ecx
mov ecx, dword [ebp - 0x854]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x3ec], edx
mov dword [ebp - 0x7d0], 0
mov eax, dword [ebp - 0x3ec]
mov dword [ebp - 0x1850], eax
cmp dword [ebp - 0x1850], 0
jne 0x1000423f
mov ecx, dword [ebp - 0x7d0]
mov dword [ebp - 0x400], ecx
jmp 0x10004530
mov edx, dword [ebp - 0x1850]
mov eax, dword [ebp - 0x3ec]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1854], eax
jne 0x10004267
mov ecx, dword [ebp - 0x7d0]
mov dword [ebp - 0x400], ecx
jmp 0x10004530
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x1854]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x1858], edx
cmp dword [ebp - 0x1858], 0
jne 0x10004299
mov eax, dword [ebp - 0x7d0]
mov dword [ebp - 0x400], eax
jmp 0x10004530
mov ecx, dword [ebp - 0x3ec]
add ecx, dword [ebp - 0x1858]
mov dword [ebp - 0x858], ecx
jne 0x100042be
mov edx, dword [ebp - 0x7d0]
mov dword [ebp - 0x400], edx
jmp 0x10004530
mov eax, dword [ebp - 0x858]
mov ecx, dword [ebp - 0x3ec]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x2240], ecx
mov edx, dword [ebp - 0x858]
mov eax, dword [ebp - 0x3ec]
add eax, dword [edx + 0x24]
mov dword [ebp - 0x2244], eax
mov ecx, dword [ebp - 0x858]
mov edx, dword [ebp - 0x3ec]
add edx, dword [ecx + 0x1c]
mov dword [ebp - 0x2248], edx
mov dword [ebp - 0x85c], 0
jmp 0x10004318
mov eax, dword [ebp - 0x85c]
add eax, 1
mov dword [ebp - 0x85c], eax
mov ecx, dword [ebp - 0x858]
mov edx, dword [ebp - 0x85c]
cmp edx, dword [ecx + 0x18]
jae 0x10004524
mov eax, dword [ebp - 0x85c]
mov ecx, dword [ebp - 0x2240]
mov edx, dword [ebp - 0x3ec]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x860], edx
mov eax, dword [ebp - 0x85c]
mov ecx, dword [ebp - 0x2244]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x2248]
mov ecx, dword [ebp - 0x3ec]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x224c], ecx
mov dword [ebp - 0x18c], 0
jmp 0x10004388
mov eax, dword [ebp - 0x860]
add eax, dword [ebp - 0x18c]
movsx ecx, byte [eax]
test ecx, ecx
je 0x1000443a
mov edx, dword [ebp - 0x18c]
movsx eax, byte [ebp + edx - 0x99c]
test eax, eax
je 0x1000443a
push edx
sub edx, 0x1d7e
xor edx, 0x34f7
sub edx, 0x17324
pop edx
push edx
jmp 0x100043d0
call 0x100043dd
add byte [eax + 0x3a], cl
inc eax
inc edx
cmp eax, 0xc483344d
add al, 0x81
ljmp 0x8b5a
push edx
push eax
add esp, 4
call 0x1000444e
add byte [edx + 0x39], al
cmp cl, byte [ebp + 0x3d]
cmp al, 0x3f
dec eax
dec esp
add esp, 4
pop edx
push ebx
push ebx
add esp, 4
sub ebx, 0x3e8a
jmp 0x10004465
and ebx, 0xb865
pop ebx
mov eax, dword [ebp - 0x860]
add eax, dword [ebp - 0x18c]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x18c]
movsx eax, byte [ebp + edx - 0x99c]
cmp ecx, eax
jne 0x10004499
mov dword [ebp - 0xe3c], 0
jmp 0x10004508
push edx
or edx, 0x17654
and edx, 0x1694b
pop edx
push ecx
xor ecx, 0x5ce8
call 0x100044bb
add byte [ebx + 0x4d], al
dec eax
inc ecx
cmp eax, dword [ecx + 0x45]
add esp, 4
jmp 0x100044c4
xor ecx, 0xf907
pop ecx
mov ecx, dword [ebp - 0x860]
add ecx, dword [ebp - 0x18c]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x18c]
movsx ecx, byte [ebp + eax - 0x99c]
or ecx, 0x20
cmp edx, ecx
jge 0x100044fe
mov dword [ebp - 0xe3c], 0xffffffff
jmp 0x10004508
mov dword [ebp - 0xe3c], 1
cmp dword [ebp - 0xe3c], 0
jne 0x1000451f
mov edx, dword [ebp - 0x224c]
mov dword [ebp - 0x400], edx
jmp 0x10004530
jmp 0x10004309
mov eax, dword [ebp - 0x7d0]
mov dword [ebp - 0x400], eax
cmp dword [ebp - 0x400], 0
je 0x1000460b
push ebx
push ecx
add esp, 4
jmp 0x1000454a
add ebx, 0xed5e
xor ebx, 0xd13
or ebx, 0x17436
pop ebx
push edx
push esi
add esp, 4
sub edx, 0x4d59
add edx, 0x2f10
pop edx
mov ecx, dword [ebp - 0x400]
mov dword [ebp - 0x2250], ecx
push esi
push esi
add esp, 4
or esi, 0x4f4d
xor esi, 0xbd72
or esi, 0x12db9
pop esi
push ebx
push esi
add esp, 4
add ebx, 0xa21d
pop ebx
push ebx
xor ebx, 0x149b4
add ebx, 0x9780
pop ebx
mov edx, dword [ebp - 0x2250]
mov dword [ebp - 0x2254], edx
lea eax, [ebp - 0x18dc]
push eax
call dword [ebp - 0x2254]
test eax, eax
jne 0x1000460b
push ecx
push ecx
add esp, 4
sub ecx, 0xeffc
xor ecx, 0x13426
sub ecx, 0xa0c7
sub ecx, 0x160cb
pop ecx
push eax
push esi
add esp, 4
sub eax, 0x4711
jmp 0x100045fb
pop eax
mov dword [ebp - 0xbf8], 0
jmp 0x10004cf6