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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
mov edi, ecx
mov esi, dword [ebp + 8]
xorps xmm0, xmm0
movaps xmmword [esp + 0x80], xmm0
movaps xmmword [esp + 0x70], xmm0
lea ecx, [esp + 0x70]
push 0
push 0xffffffffffffffff
push dword [edi + 0x40]
push dword [edi]
call fcn.004111c0
xorps xmm0, xmm0
movaps xmmword [esp + 0x60], xmm0
movaps xmmword [esp + 0x50], xmm0
mov dword [esp + 4], edi
mov eax, dword [edi]
mov ecx, dword [esi + 0x1c]
mov edx, dword [eax + 0xc]
add edx, ecx
test ecx, ecx
cmove edx, ecx
lea ecx, [esp + 0x50]
push edx
push eax
call fcn.004154d0
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov byte [esp + 0x38], 1
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x1c], esi
test esi, esi
je 0x47917e
lea ecx, [esp + 0x20]
call fcn.00411490
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0xb0], xmm0
movups xmm1, xmmword [esp + 0x20]
movups xmm2, xmmword [esp + 0x30]
movaps xmmword [esp + 0xa0], xmm2
movaps xmmword [esp + 0x90], xmm1
movaps xmmword [esp + 0x30], xmm2
movsd qword [esp + 0x40], xmm0
movaps xmmword [esp + 0x20], xmm1
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x3c], eax
jne 0x4791f3
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov al, 1
cmp edx, ecx
jb 0x47939c
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
lea ecx, [esp + 0x20]
call fcn.00411490
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x1c]
je 0x4791c1
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
cmp edx, ecx
jae 0x4791c9
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x30]
movzx eax, word [edx + eax*8 + 2]
mov edx, dword [ecx + 0x2c]
mov edx, dword [edx + eax*4]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x28]
mov ecx, dword [ecx + edx*4]
cmp byte [eax + ecx], 0
js 0x47936a
add eax, ecx
add eax, 1
movsx eax, byte [eax]
mov dword [esp + 0xc], eax
add eax, 0xffffffbe
cmp eax, 0x18
ja 0x479290
mov ecx, 0xedfe68
bt ecx, eax
setb byte [esp + 0xb]
cmp eax, 2
sete cl
mov dword [esp + 0x18], ecx
cmp eax, 4
sete cl
mov dword [esp + 0x14], ecx
cmp eax, 8
sete cl
mov dword [esp + 0x10], ecx
cmp eax, 7
sete cl
mov esi, ecx
cmp eax, 1
sete bl
cmp eax, 0x11
sete cl
test eax, eax
sete dl
cmp eax, 0x18
sete al
jmp 0x4792b7
mov byte [esp + 0xb], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
xor esi, esi
xor ebx, ebx
xor ecx, ecx
xor edx, edx
xor eax, eax
mov edi, dword [esp + 0x60]
cmp edi, 0x1f
ja case.0x4792c4.1
jmp dword [edi*4 + 0x4cfec0]
cmp byte [esp + 0xb], 0
jne 0x479330
jmp 0x4793af
test dl, dl
jne 0x479330
jmp 0x4793c2
test cl, cl
jne 0x479330
jmp 0x4793cd
test bl, bl
jne 0x479330
jmp 0x4793d8
mov eax, esi
test al, al
jne 0x479330
jmp 0x4793e3
cmp byte [esp + 0x10], 0
jne 0x479330
jmp 0x4793ee
cmp byte [esp + 0x14], 0
jne 0x479330
jmp 0x4793f9
cmp byte [esp + 0x18], 0
jne 0x479330
jmp 0x479404
test al, al
je 0x47940f
nop dword [eax]
lea ecx, [esp + 0x50]
call fcn.00414d70
mov eax, dword [esp + 0x3c]
add eax, 1
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x44]
jae 0x4791ed
cmp eax, dword [esp + 0x40]
jne 0x4791e0
mov dword [esp + 0x2c], 0
mov byte [esp + 0x38], 0
jmp 0x4791e0
add eax, ecx
cmp byte [eax + 1], 0
js 0x47937a
add eax, 2
jmp 0x47922f
cmp byte [eax + 2], 0
js 0x479388
add eax, 3
jmp 0x47922f
movzx ecx, byte [eax + 3]
shr cl, 7
movzx ecx, cl
add eax, ecx
add eax, 4
jmp 0x47922f
push str.too_many_static_field_initial_values
push dword [esp + 8]
call fcn.0047f73a
add esp, 8
jmp 0x479424
push dword [esp + 0xc]
push str.unexpected_static_field_initial_value_type:_L_vs__c
jmp 0x479418
push edi
push str.unexpected_static_field_initial_value_type:__x
jmp 0x479418
push dword [esp + 0xc]
push str.unexpected_static_field_initial_value_type:_B_vs__c
jmp 0x479418
push dword [esp + 0xc]
push str.unexpected_static_field_initial_value_type:_S_vs__c
jmp 0x479418
push dword [esp + 0xc]
push str.unexpected_static_field_initial_value_type:_C_vs__c
jmp 0x479418
push dword [esp + 0xc]
push str.unexpected_static_field_initial_value_type:_I_vs__c
jmp 0x479418
push dword [esp + 0xc]
push str.unexpected_static_field_initial_value_type:_J_vs__c
jmp 0x479418
push dword [esp + 0xc]
push str.unexpected_static_field_initial_value_type:_F_vs__c
jmp 0x479418
push dword [esp + 0xc]
push str.unexpected_static_field_initial_value_type:_D_vs__c
jmp 0x479418
push dword [esp + 0xc]
push str.unexpected_static_field_initial_value_type:_Z_vs__c
push dword [esp + 0xc]
call fcn.0047f73a
add esp, 0xc
xor eax, eax
jmp 0x4791d3