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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
mov eax, ecx
mov dword [esp], edx
push ebx
push esi
push edi
movzx edi, byte [eax + 0xa]
cmp byte [eax + 2], 0
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 8]
lea ecx, [edi + edx]
je 0x41de49
mov esi, dword [eax + 0x1c]
mov ebx, dword [eax + 0x20]
mov eax, dword [eax + 0x10]
add ebx, esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], eax
cmp ebx, 0x80
jae 0x41dd81
mov byte [ecx], bl
mov eax, 1
jmp 0x41dddc
mov eax, ebx
cdq
mov ecx, eax
test edx, edx
ja 0x41ddcb
jb 0x41dd91
cmp ecx, 0x7f
ja 0x41dda2
mov edx, dword [esp + 0xc]
and cl, 0x7f
mov eax, 1
mov byte [edx + edi], cl
jmp 0x41dddc
test edx, edx
ja 0x41ddcb
jb 0x41ddb0
cmp ecx, 0x3fff
ja 0x41ddcb
shrd eax, edx, 7
mov edx, dword [esp + 0xc]
or al, 0x80
and cl, 0x7f
mov byte [edx + edi], al
mov eax, 2
mov byte [edx + edi + 1], cl
jmp 0x41dddc
push edx
push ecx
mov ecx, dword [esp + 0x14]
lea ecx, [edi + ecx]
call fcn.00408e60
add esp, 8
mov edx, dword [ebp + 8]
movzx eax, al
add edi, eax
mov eax, dword [esp + 0xc]
add eax, edi
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
test edx, edx
ja 0x41de38
jb 0x41ddfb
cmp ecx, 0x7f
ja 0x41de0a
and cl, 0x7f
mov byte [eax], cl
mov eax, 1
jmp 0x41decd
test edx, edx
ja 0x41de38
jb 0x41de18
cmp ecx, 0x3fff
ja 0x41de38
mov eax, ecx
shrd eax, edx, 7
mov edx, dword [esp + 0xc]
or al, 0x80
and cl, 0x7f
mov byte [edi + edx], al
mov eax, 2
mov byte [edi + edx + 1], cl
jmp 0x41decd
push edx
push ecx
mov ecx, eax
call fcn.00408e60
add esp, 8
jmp 0x41decd
mov ebx, dword [eax + 8]
mov esi, ebx
mov eax, dword [eax]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
cmp ebx, 0x80
jae 0x41de6d
mov byte [ecx], bl
mov eax, 1
jmp 0x41deca
mov eax, ebx
cdq
mov ecx, eax
test edx, edx
ja 0x41deb9
jb 0x41de7d
cmp ecx, 0x7f
ja 0x41de8e
mov edx, dword [esp + 0xc]
and cl, 0x7f
mov eax, 1
mov byte [edx + edi], cl
jmp 0x41deca
test edx, edx
ja 0x41deb9
jb 0x41de9c
cmp ecx, 0x3fff
ja 0x41deb9
shrd eax, edx, 7
mov edx, dword [esp + 0xc]
mov esi, ebx
or al, 0x80
and cl, 0x7f
mov byte [edx + edi], al
mov eax, 2
mov byte [edx + edi + 1], cl
jmp 0x41deca
push edx
push ecx
mov ecx, dword [esp + 0x14]
lea ecx, [edi + ecx]
call fcn.00408e60
add esp, 8
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], edi
add edi, dword [esp + 0xc]
movzx ecx, word [eax + 0xe]
mov dword [esp + 0x2c], ecx
cmp ebx, ecx
jg 0x41df24
mov ecx, dword [esp + 0x24]
mov eax, 4
add ecx, ebx
cmp ecx, eax
push esi
push dword [esp + 0x18]
cmovl ecx, eax
mov eax, dword [ebp + 0xc]
push edi
mov dword [eax], ecx
call fcn.004e8950
add esp, 0xc
lea eax, [edi + esi]
sub ebx, esi
push ebx
push 0
push eax
call fcn.004e8ed0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx esi, word [eax + 0x10]
xor edx, edx
mov eax, dword [eax + 0x34]
mov dword [esp + 0x18], eax
mov ecx, dword [eax + 0x24]
mov eax, ebx
sub eax, esi
sub ecx, 4
div ecx
lea eax, [edx + esi]
mov edx, dword [esp + 0x24]
cmp eax, dword [esp + 0x2c]
cmovle esi, eax
mov eax, dword [ebp + 0xc]
add edx, esi
lea ecx, [edx + 4]
mov dword [eax], ecx
mov eax, dword [esp + 0xc]
add eax, edx
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ebx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], esi
cmp eax, dword [esp + 0x1c]
cmovle esi, eax
cmp ecx, esi
jl 0x41df8f
push esi
push dword [esp + 0x18]
push edi
call fcn.004e8950
jmp 0x41dfab
test ecx, ecx
jle 0x41dfa2
push ecx
push dword [esp + 0x18]
mov esi, ecx
push edi
call fcn.004e8950
jmp 0x41dfab
push esi
push 0
push edi
call fcn.004e8ed0
mov eax, dword [esp + 0x2c]
add esp, 0xc
sub eax, esi
mov dword [esp + 0x20], eax
test eax, eax
jle 0x41e209
mov ecx, dword [esp + 0x10]
add edi, esi
add dword [esp + 0x14], esi
sub ecx, esi
sub dword [esp + 0x1c], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
jne 0x41df77
mov edi, dword [esp + 0x18]
mov esi, ebx
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], esi
cmp byte [edi + 0x11], 0
je 0x41e057
jmp 0x41dff8
mov edi, dword [esp + 0x18]
inc ebx
cmp ebx, 2
jae 0x41e005
mov edi, dword [edi + 0x20]
xor eax, eax
jmp 0x41e039
mov eax, 0xcccccccd
lea esi, [ebx - 2]
mul dword [edi + 0x24]
mov eax, esi
mov edi, dword [edi + 0x20]
mov ecx, edx
xor edx, edx
shr ecx, 2
inc ecx
div ecx
mov eax, dword [0x54b1cc]
sub esi, edx
xor edx, edx
div edi
lea ecx, [eax - 1]
xor eax, eax
cmp esi, ecx
sete al
add eax, 2
add eax, esi
cmp eax, ebx
je 0x41dff4
mov eax, dword [0x54b1cc]
xor edx, edx
div edi
mov edi, dword [esp + 0x18]
inc eax
cmp ebx, eax
je 0x41dff8
mov esi, dword [esp + 0xc]
mov dword [esp + 0x28], ebx
push 0
lea eax, [esp + 0x2c]
mov ecx, edi
push ebx
push eax
lea edx, [esp + 0x28]
call fcn.0041c9e0
mov ebx, dword [esp + 0x34]
add esp, 0xc
cmp byte [edi + 0x11], 0
mov dword [esp + 0xc], eax
je 0x41e0fe
test eax, eax
jne 0x41e19e
lea eax, [esp + 0xc]
test esi, esi
push eax
setne al
mov edx, ebx
add al, 3
mov ecx, edi
movzx eax, al
push esi
push eax
call fcn.00417290
mov esi, dword [esp + 0x18]
add esp, 0xc
test esi, esi
je 0x41e10a
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x41e102
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x41e164
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004e59d0
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
mov esi, dword [esp + 0xc]
test esi, esi
jne 0x41e19e
mov ecx, dword [esp + 0x2c]
mov eax, ebx
bswap eax
mov dword [ecx], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x41e174
mov edx, dword [eax + 0x48]
test byte [edx + 0x1c], 0x20
je 0x41e16d
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004e59d0
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
jmp 0x41e174
mov ecx, edx
call fcn.0040d5a0
jmp 0x41e102
mov ecx, edx
call fcn.0040d5a0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x2c], ecx
mov dword [ecx], 0
mov edi, dword [eax + 0x38]
mov eax, dword [esp + 0x18]
add edi, 4
mov esi, dword [eax + 0x24]
sub esi, 4
jmp 0x41df6b
mov edx, dword [esp + 0x24]
test edx, edx
je 0x41e1fe
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x41e1f7
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004e59d0
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov eax, dword [esp + 0x1c]
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call fcn.0040d5a0
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x24]
test edx, edx
je 0x41e267
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x41e260
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004e59d0
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call fcn.0040d5a0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret