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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x134
lea ecx, [esp + 0x24]
push ebx
push esi
push edi
push 0x41f1cc
call fcn.0040e77a
push 0x40552c
lea ecx, [esp + 0x34]
call fcn.00410d78
xor ebx, ebx
test eax, eax
je 0x412158
mov eax, dword [esp + 0x30]
mov ecx, 0x405308
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41213c
test dx, dx
je 0x412138
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41213c
add eax, 4
add ecx, 4
test dx, dx
jne 0x412116
mov eax, ebx
jmp 0x412141
sbb eax, eax
or eax, 1
test eax, eax
jne 0x412158
push 0x40
push 0x40555c
push 0x405578
push ebx
call dword [0x4221e8]
sub esp, 0xc
call fcn.00414696
mov dword [esp + 0x1c], eax
test eax, eax
je 0x412170
or ebx, 0xffffffff
jmp 0x4125e7
mov esi, 0x404cac
mov byte [esp + 0x13], bl
mov edi, 0x42107c
push ecx
lea ecx, [esp + 0x94]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.00412b98
mov esi, dword [ebp + 0x10]
or ebx, 0xffffffff
xor edi, edi
test esi, esi
je 0x41221a
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x4121a0
sub ecx, edx
sar ecx, 1
je 0x41221a
push ebx
call dword [0x42209c]
test eax, eax
je 0x4125ce
sub esp, 0xc
mov byte [esp + 0x1f], 1
lea ecx, [esp + 0xa0]
call fcn.004135aa
test eax, eax
lea ecx, [esp + 0x90]
mov eax, dword [esp + 0x90]
push edi
mov eax, dword [eax + 4]
jne 0x4121f6
push 2
add ecx, eax
call dword [0x422410]
jmp 0x4121ff
push edi
add ecx, eax
call dword [0x422468]
mov edx, dword [0x42241c]
lea eax, [esp + 0x94]
push eax
mov eax, dword [edx]
mov ecx, dword [eax + 4]
add ecx, edx
call dword [0x422450]
push 2
push edi
call dword [0x4224c4]
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x88]
xor eax, eax
mov byte [esp + 0x18], al
push dword [esp + 0x18]
mov dword [esp + 0x90], eax
lea eax, [esp + 0x38]
push eax
call fcn.00413c1f
cmp dword [esp + 0x34], 0
jne 0x4125be
lea eax, [esp + 0x24]
xor edi, edi
push eax
lea ecx, [esp + 0x17]
mov dword [esp + 0x28], edi
push ecx
lea eax, [esp + 0x24]
mov dword [esp + 0x8c], edi
push eax
lea ecx, [esp + 0x8c]
call fcn.00413c6b
push esi
lea ecx, [esp + 0x40]
call fcn.0040ed1b
lea edx, [esp + 0x14]
mov dword [esp + 0x14], edi
lea ecx, [esp + 0x3c]
call fcn.0040ee8d
push eax
lea ecx, [esp + 0x30]
call fcn.00410ef2
push dword [esp + 0x2c]
lea ecx, [esp + 0x28]
call fcn.00410c54
cmp byte [esp + 0x13], 0
je 0x4122c6
cmp dword [esp + 0x2c], edi
jne 0x4122c6
cmp dword [esp + 0x14], 1
jne 0x412590
push edi
call dword [0x4224b4]
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x78]
xor eax, eax
mov byte [esp + 0x18], al
push dword [esp + 0x18]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x3c]
push eax
call fcn.00413cca
mov eax, dword [esp + 0x38]
test eax, eax
je 0x412304
xor ebx, ebx
mov dword [esp + 0x1c], eax
inc ebx
jmp 0x412583
push 1
push 0x2000000d
call dword [0x4223e8]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x412583
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x44], 0x401684
call fcn.00414640
lea ecx, [esp + 0x14]
call fcn.0041392a
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x4124c1
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], edi
test edi, edi
je 0x41238c
lea eax, [edi + 0x24]
mov edi, esp
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 4]
mov ecx, esi
call dword [0x4224d8]
call esi
cmp edi, esp
je 0x412388
mov ecx, 4
int 0x29
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
lea eax, [edi + 8]
push edi
push eax
call fcn.0040b1a2
push esi
push ecx
push ecx
mov ecx, dword [0x41f198]
call fcn.0041412e
push 5
push dword [edi + 4]
call dword [0x4221e0]
lea ecx, [esp + 0x40]
call fcn.004144e5
mov esi, eax
call fcn.00414394
test esi, esi
je 0x41250c
xor edx, edx
mov dword [esp + 0x20], edx
mov eax, dword [edi + 0x7c]
test eax, eax
jne 0x4123e5
mov dword [esp + 0x1c], 0x8007139f
jmp 0x4124af
mov ecx, dword [edi + 0x74]
mov esi, dword [edi + 0x78]
push 0x800
push edx
mov dword [edi + 0x7c], edx
push 0x40562c
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], edx
call dword [0x422074]
mov edi, eax
test edi, edi
je 0x41245a
test esi, esi
je 0x41241c
push 0x405654
jmp 0x412421
push 0x405664
push edi
call dword [0x422078]
mov ebx, eax
test ebx, ebx
je 0x41244e
mov esi, esp
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x18]
mov ecx, ebx
call dword [0x4224d8]
call ebx
cmp esi, esp
je 0x41244e
mov ecx, 4
int 0x29
push edi
call dword [0x42207c]
jmp 0x412503
mov esi, 0x41f1cc
lea ecx, [esp + 0x14]
push esi
call fcn.0040e77a
push 0x1a6
lea ecx, [esp + 0x18]
call fcn.0040e8ce
test eax, eax
je 0x4124a3
push esi
lea ecx, [esp + 0x2c]
call fcn.0040e77a
push 0x1a7
lea ecx, [esp + 0x2c]
call fcn.0040e8ce
test eax, eax
jne 0x4124df
mov ecx, dword [esp + 0x28]
lea ecx, [ecx - 0x10]
call fcn.0040e998
mov ecx, dword [esp + 0x14]
lea ecx, [ecx - 0x10]
call fcn.0040e998
lea ecx, [esp + 0x20]
call fcn.004070ac
lea ecx, [esp + 0x18]
call fcn.00410c29
cmp dword [esp + 0x50], 0
je 0x412559
push dword [esp + 0x50]
call dword [0x42236c]
xor eax, eax
pop ecx
mov dword [esp + 0x50], eax
jmp 0x41255b
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
push 0x10
push edi
push esi
push 0
call dword [0x4221e8]
lea ecx, [esi - 0x10]
call fcn.0040e998
lea ecx, [edi - 0x10]
call fcn.0040e998
lea ecx, [esp + 0x20]
call fcn.004070ac
lea ecx, [esp + 0x18]
call fcn.00410c29
cmp dword [esp + 0x50], 0
je 0x41252f
push dword [esp + 0x50]
call dword [0x42236c]
xor ebx, ebx
pop ecx
mov dword [esp + 0x50], ebx
jmp 0x412531
xor ebx, ebx
cmp dword [esp + 0x44], 0
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
je 0x41254f
push dword [esp + 0x44]
call dword [0x42236c]
pop ecx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
jmp 0x412583
xor eax, eax
cmp dword [esp + 0x44], 0
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
je 0x41257b
push dword [esp + 0x44]
call dword [0x42236c]
xor eax, eax
pop ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x412590
call fcn.00411f16
lea ecx, [esp + 0x2c]
call fcn.00410c29
mov ecx, dword [esp + 0x3c]
lea ecx, [ecx - 0x10]
call fcn.0040e998
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x4125b5
call fcn.00411f16
lea ecx, [esp + 0x24]
call fcn.00410c29
mov ecx, dword [esp + 0x8c]
test ecx, ecx
je 0x4125ce
call fcn.00411f16
lea ecx, [esp + 0xf8]
call fcn.00412b66
lea ecx, [esp + 0xf8]
call dword [0x422454]
mov ecx, dword [esp + 0x30]
lea ecx, [ecx - 0x10]
call fcn.0040e998
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 0x10